Невозможно использовать оператор импорта вне модуля - Vuex testing quasar - PullRequest
0 голосов
/ 26 мая 2020

как дела?

У меня проблема с тестированием материалов Vuex с помощью Quasar.

Тестирование компонентов работает нормально, но когда я начал тестировать свой магазин, я понял .

spe c файл:

/test/jest/__tests__/store/auth/mutations.spec.js

import { store } from 'src/store';
import { mutations } from 'src/store/auth';
import mutations from 'src/store/auth/mutations';

Все те способы, которыми я пытался импортировать данные из своего магазина, я получал эту ошибку:

({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import { store } from 'quasar/wrappers';

SyntaxError: Cannot use import statement outside a module

как я могу импортировать мой магазин в мои файлы spe c?

Ответы [ 2 ]

0 голосов
/ 05 сентября 2020

Ваша проблема в том, что операторы import не поддерживаются обычным JavaScript, следовательно, ни Node. import - это дополнение под названием ES Modules. Поскольку Jest запускает ваши тесты в Node, вы получаете SyntaxError, поскольку import { store } from 'quasar/wrappers' недопустимый синтаксис JS.

Решение состоит в том, что вам нужно указать Jest использовать Babel (или аналогичный инструмент) для преобразования ваш тестовый файл, прежде чем пытаться выполнить его в Node.

Это требует некоторой настройки в вашем jest.config.js, а также вам нужно будет установить babel-jest, babel и связанные пакеты и создать .babelrc или babel.config.js, чтобы указать Babel, что именно делать с вашими тестовыми файлами.

Фактическая правильная конфигурация может зависеть от многих факторов, но в качестве отправной точки обратитесь к ним:

Также я бы рекомендовал рассмотреть возможность использования Quasar CLI, который дает вам удобный способ автоматической настройки Jest для вашего проекта Quasar, включая простой пример теста, который вы можете использовать в качестве отправной ссылки: https://testing.quasar.dev/

0 голосов
/ 26 мая 2020
import { store } from 'src/store';
import { mutations } from 'src/store/auth';
import mutations from 'src/store/auth/mutations';

просто используйте require

const store = require('src/store');
const mutations = require('src/store/auth)';
const mutations = require('src/store/auth/mutations');

вам нужен type = module in package. json для использования import

...