Я делаю упражнения с ES2015, Шутки, React, и я получаю эту ошибку:Jest + ES2015 импорт
TypeError: Property description must be an object: undefined
at defineProperties (native)
at Object.eval (<PROJECT>/node_modules/event-emitter/index.js:127:8)
Порывшись в ней, я думаю, что это связано с импорта nodeModule EventEmitter или по расширяя его класс.
Это код файла сценария:
import EventEmitter from 'event-emitter';
import AppDispatcher from '../dispatcher/app-dispatcher';
import {
ACTION_CURSOR_POSITION_CHANGED,
ACTION_IS_DRAGGING_CHANGED
} from '../constants/actions';
let _draggingStoreInstance = null;
/**
* DraggingStore class
*/
export default class DraggingStore extends EventEmitter
{
/**
* Constructor
*/
constructor() {
// ...
Исходный код тестового файла выглядит следующим образом:
import '../unmock/dragging-store.unmock.js';
import DraggingStore from '../../src/stores/dragging-store';
describe('Dragging Store',() => {
let draggingStoreInstance = null;
beforeEach(() => {
draggingStoreInstance = DraggingStore.getInstance();
});
it('should be defined',() => {
expect(DraggingStore).toBeDefined();
expect(draggingStoreInstance).toBeDefined();
});
});
Я сделал дополнительный файл для исключения издевается:
jest.dontMock('../../src/stores/dragging-store.js');
jest.dontMock('../../src/dispatcher/app-dispatcher.js');
jest.dontMock('../../src/constants/actions.js');
Сам код запускается плавно в браузере после компиляции, но механизм тестирования дает ошибку.
Я добавил это в моем package.json:
"scripts": {
"test": "jest"
},
"jest": {
"scriptPreprocessor": "./node_modules/babel-jest",
"unmockedModulePathPatterns": [
"./node_modules/react"
],
"collectCoverage": true,
"testDirectoryName": "spec",
"moduleFileExtensions": [
"js"
],
"collectCoverageOnlyFrom": {
// All files to test
}
}
Кто-нибудь есть понятия, как обойти эту проблему? Спасибо заранее ...
Update: полный исходный код можно найти здесь: https://github.com/dejakob/unlease-chess
Jups, я разместил этот вопрос год назад, и JEST сам сильно улучшился с тех пор. Он даже настроен в проекте React Native по умолчанию в настоящее время. – dejakob