TypeError: _axiosMockAdapter.MockAdapter не является конструктором

Я использую vuejs, vue-testing-library, jest, axios и axios-mock-adapter для тестирования компонента. Я сразу же сталкиваюсь со следующей ошибкой при попытке запустить мой тест:

      TypeError: _axiosMockAdapter.MockAdapter is not a constructor

Мой тест:

      import GlobalSearch from '../src/components/global_search.vue';
import { render, fireEvent } from '@testing-library/vue';
import { axios } from 'axios';
import { MockAdapter } from 'axios-mock-adapter';

// jest.mock("axios", () => ({
//  get: () => Promise.resolve(
//      [{
//          "content":"Keith's Company - Keith's First Project",
//          "id":3,
//          "searchable_type":"Project",
//          "url":"/projects/1"
//      }]
//  )
// }))

describe('GlobalSearch', () => {
    it('It renders its default state', async () => {
        let mock = new MockAdapter(axios);

        const { findByText, getByText } = render(GlobalSearch);

        findByText('Companies, Contacts, Projects');

        const searchResults = [{
            "content":"Keith's Company - Keith's First Project",
            "id":3,
            "searchable_type":"Project",
            "url":"/projects/1"
        }]
        mock.onGet('/search/index').reply(200, searchResults);

        await fireEvent.update(getByText('Companies, contacts, projects'), 'ke')

        getByText('First Project');
    });
});

Что я делаю неправильно? Кроме того, этот стек довольно стандартный?

1 ответ

MockAdapter — это экспорт по умолчанию, поэтому удалите фигурные скобки в операторе импорта:

import MockAdapter from 'axios-mock-adapter';

вместо:

import { MockAdapter } from 'axios-mock-adapter';

Другие вопросы по тегам