mocha-webpack - RUNTIME EXCEPTION Исключительная ситуация при загрузке ваших тестов

Я получаю эту ошибку при запуске моих тестов:

RUNTIME EXCEPTION  Exception occurred while loading your tests

TypeError: Cannot read property 'indexOf' of undefined
  at /Users/user/project/.tmp/mocha-webpack/1503105850474/webpack:/~/leaflet/dist/leaflet-src.js:724:1
  at /Users/user/project/.tmp/mocha-webpack/1503105850474/webpack:/~/leaflet/dist/leaflet-src.js:843:2

У меня есть реактивный компонент, который использует mapbox.js и leaflet.js. Я получаю вышеуказанную ошибку, когда у меня есть

import L from 'mapbox.js';
import 'leaflet.markercluster';

в верхней части файла. Но если я перейду в componentDidUpdate как

const L = require('mapbox.js');
require('leaflet.markercluster');

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

require('babel-register')();
require('babel-polyfill');
require('isomorphic-fetch');

const { JSDOM } = require('jsdom');

const jsdom = new JSDOM('<!doctype html><html><body></body></html>');
const { window } = jsdom;

function copyProps(src, target) {
  const props = Object.getOwnPropertyNames(src)
  .filter(prop => typeof target[prop] === 'undefined')
  .map(prop => Object.getOwnPropertyDescriptor(src, prop));
  Object.defineProperties(target, props);
}

global.window = window;
global.document = window.document;
global.navigator = {
  userAgent: 'node.js',
};
copyProps(window, global);

Мои тесты довольно просты:

import React from 'react';
import { Component } from 'components/Component';
import { mount } from 'enzyme';
import { expect } from 'chai';

describe('(Component) HeaderBlockMap', () => {
  let wrapper;
  let search;

  beforeEach(() => {
    wrapper = mount(<Component />);
  });

  it('renders a container', () => {
    const container = wrapper.find('.container');
    expect(container).to.exist;
  });
});

0 ответов

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