Тайм-аут Jest Mocked request.js - асинхронный обратный вызов не был вызван в течение тайм-аута 5000 мс, указанного в jest.setTimeout.Error: - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь смоделировать request.js, чтобы смоделировать загрузку файла, но он всегда зависает. Я увеличил время ожидания, но оно всегда будет превышено.

Код, который я пытаюсь смоделировать, соответствует структуре request.post.form.append. Если я помещаю данные формы вручную, это всегда дает сбой, поэтому по функциональным причинам функциональный код не может быть изменен.

Я установил свой макет require.js, чтобы он подходил только для одного варианта использования, поэтому он написан так, как он есть. Мой макет require.js выглядит следующим образом:

const request = {
  post: jest.fn(() => ({
    form: jest.fn(() => ({
      append: jest.fn(test => {
        console.log(test)
        return Promise.resolve({
          status: 200,
          body: { test }
        })
      })
    }))
  }))
};

module.exports = request;

Мой код шутки выглядит следующим образом:

    it('should upload a file', async () => {
      mocks.post.mockReturnValueOnce({
        status: 200,
        body: { test: 'response' }
      });

      const res = await dataSource.uploadFile(
        { name: 'projects', id: '123' },
        null,
        {
          filename: 'test',
          encoding: '7bit',
          mimetype: 'text/plain',
          createReadStream: jest.fn
        },
         '12345'
      );
      console.log('RES', res); // never gets here
      expect(mocks.post).toBeCalledWith('testName/123/files', {
        filename: 'test',
        encoding: '7bit',
        mimetype: 'text/plain',
        createReadStream: jest.fn
      });
      expect(res).toMatchSnapshot();
    });

Применимый тестовый возврат выглядит следующим образом:

  console.log folder/folderName/src/files/__mocks__/request.js:5
    file

  console.log folder/folderName/src/files/__mocks__/request.js:5
    file

 FAIL  folder/folderName/src/files/__tests__/upload.spec.js (12.673s)
    uploadFile
      ✕ should upload a file (5006ms)

  ● FilesAPI › uploadFile › should upload a file

    Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Error: 

Я заметил, что в моем запросе дважды регистрируется test, поэтому я предполагаю, что он ожидает, чтобы что-то еще вернулось. Чего мне не хватает?

Код, который он запускает, отлично подходит для реальных загрузок, я просто пытаюсь написать для него модульный тест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...