Я пытаюсь настроить проект React с помощью Electron, и я только начал пытаться настроить Mocha в качестве своей тестовой среды.
Все хорошо, если я запускаю:
"test": "mocha -w --require babel-core/register --require ignore-styles ./app/test/helpers/browser.js ./app/**/*.spec.js --colors --growl"
и в моем файле спецификаций есть простое описание и утверждение, что 1 равно 1.
Проблема возникает, когда я пытаюсь включить компонент реакции:
import style from './app.scss';
import React from 'react';
import {render} from 'react-dom';
export default class App extends React.Component {
render () {
return (
<div>
<h1 className={style.title}> Hello World </h1>
</div>
)
}
}
render(<App/>, document.getElementById('app'));
Когда это включено в мой тест, даже до того, как я его смонтирую, я получаю:
Нарушение инварианта: _registerComponent(...): целевой контейнер не является элементом DOM.
Я использую jsdom и настраиваю среду своего браузера, например:
import { jsdom } from 'jsdom'
const exposedProperties = ['window', 'navigator', 'document'];
global.document = jsdom('');
global.window = document.defaultView;
Object.keys(document.defaultView).forEach((property) => {
if (typeof global[property] === 'undefined') {
exposedProperties.push(property);
global[property] = document.defaultView[property];
}
});
global.navigator = {
userAgent: 'node.js'
};