2016-02-13 1 views
7

У меня есть этот компонент:Jest: не может найти модуль, необходимый внутри модуля для тестирования (относительный путь)

import React from 'react'; 
import VideoTag from './VideoTag'; 
import JWPlayer from './JWPlayer'; 

class VideoWrapper extends React.Component { 
//... component code 
} 

Это основано на некоторой логике визуализирует другой компонент внутри (VideoTag или JWPlayer), но когда я пытаюсь проверить это в файле шутку я получаю сообщение об ошибке:

не удается найти модуль «./VideoTag»

три coponents находятся в том же каталоге, поэтому она на самом деле работает, когда я transpile его и увидеть его в действии в браузере, но похоже Шутки испытывает проблемы разрешающие эти относительные пути, это шутка файл:

jest.dontMock('../src/shared/components/Video/VideoWrapper.jsx'); 

import React from 'react'; 
import ReactDOM from 'react-dom'; 
TestUtils from 'react-addons-test-utils'; 

import VideoWrapper from '../src/shared/components/Video/VideoWrapper.jsx'; 

describe('VideoWrapper tests',() => { 
    it('Render JWPlayer',() => { 

     let vWrapper = TestUtils.renderIntoDocument(
     < VideoWrapper model={model} /> 
); 

    }); 
}); 

Ошибка в строке:

import VideoWrapper from '../src/shared/components/Video/VideoWrapper.jsx'; 

Как узнать шуткой, как обрабатывать относительные пути?

ответ

9

Проблема не были пути, он ищет модули только с расширением .js, он работал после добавления .jsx в конфигурации: шутку

"moduleFileExtensions": [ 
    "js", 
    "jsx" 
] 
1

Вам не нужно добавлять в moduleFileExtensions конфигурация для этих двух параметров, поскольку jest использует ['js', 'jsx', 'json', 'node'] как расширения файлов по умолчанию. (Если вы не хотите специально пропустить любую опцию, которая есть)