Jest с moxios сохраняет время ожидания, когда я использую пользовательский экземпляр axios - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть служба, использующая пользовательский экземпляр axios, который я пытаюсь протестировать, но постоянно получаю ошибку.

Вот ошибка:

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

Вот тест:

import moxios from 'moxios';
import NotificationService, { instance } from '../NotificationService';

beforeEach(() => {
  moxios.install(instance);
});

afterEach(() => {
  moxios.uninstall(instance);
});

const fetchNotifData = {
  data: {
    bell: false,
    rollups: []
  }
};

describe('NotificationService.js', () => {
  it('returns the bell property', async done => {
    const isResolved = true;
    const data = await NotificationService.fetchNotifications(isResolved);

    moxios.wait(() => {
      let request = moxios.requests.mostRecent();
      console.log(request);
      request
        .respondWith({
          status: 200,
          response: fetchNotifData
        })
        .then(() => {
          console.log(data);
          expect(data).toHaveProperty('data.bell');
          done();
        });
    });
  });
});

А вот код, который я пытаюсь проверить:

import axios from 'axios';

// hardcoded user guid
const userId = '8c4';

// axios instance with hardcoded url and auth header
export const instance = axios.create({
  baseURL: 'hidden',
  headers: {
    Authorization:
      'JWT ey'
});

/**
 * Notification Service
 * Call these methods from the Notification Vuex Module
 */
export default class NotificationService {

  /**
   * @GET Gets a list of Notifications for a User
   * @returns {AxiosPromise<any>}
   * @param query
   */
  static async fetchNotifications(query) {
    try {
      const res = await instance.get(`/rollups/user/${userId}`, {
        query: query
      });
      console.log('NotificationService.fetchNotifications()', res);
      return res;
    } catch (error) {
      console.error(error);
    }
  }
}

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

Любая помощь приветствуется, спасибо заранее.

1 Ответ

0 голосов
/ 08 августа 2019

пытались ли вы изменить настройки среды Jest, добавив это в свой тестовый файл?

/**
 * @jest-environment node
 */
import moxios from 'moxios';
...

Jest препятствует отправке запросов, если вы не добавите это.В любом случае, я использую nock вместо moxios и рекомендую его.

...