bbirajdar Ответов: 0

Как разрешить псевдонимы, определенные для путей при модульном тестировании компонентов reactjs


Уважаемое Сообщество

У меня есть приложение React JS с набором компонентов. Некоторые из них являются простыми компонентами, которые отображают HTML, в то время как другие являются вложенными компонентами, которые используют другие компоненты в нем.

Вот пример - компонент Header.jsx использует компонент HtmlRow, на который ссылается псевдоним.

<pre lang="Javascript">
import React from 'react';
import HtmlRow from '@repo/libraryv3/HtmlRow';
.
.
render() {   

    return (
      <div className="someclasss">
        <HtmlRow>
          <HtmlCol xs={12} >
//.......
//....


Путь
'@repo/libraryV3/
определяется как псевдоним в package.json, который фактически сопоставляется с физическим путем репозитория.

"devDependencies": {    
    "@repo/libraryv3": "git+https://git.mycompany.com/repositories/libraryV3.git#branch1",


Теперь вот подробности этого вопроса -

1. я использую jest & enzyme для написания модульных тестов для этих компонентов, которые отлично работают, если это простой компонент, который не ссылается на какой-либо другой компонент в нем.
2. однако когда я использую такой компонент , как Header.jsx для модульного тестирования,который, в свою очередь, ссылается на компонент HtmlRow, и визуализирую его с помощью "shallow" или "mount", базовая тестовая платформа не может разрешить псевдоним и выдает ошибку -

Cannot find module './HtmlRow/HtmlRow' from 'header.spec.js'


Я открыт для использования любых пакетов, которые решают эту проблему.

Что я уже пробовал:

1. Что я смог понять, так это то, что тестовая платформа не может разрешить псевдоним, определенный в package.json.

2. я попробовал использовать jest-resolver, упомянутый здесь. Однако это дает мне ту же самую ошибку "модуль не найден"

[^НПМ шутку арбитр]
3. Также пробовал различные решения, используя НОК, перевождь-магазин и т. д.

Любые предложения, решения приветствуются

0 Ответов