Jest test: не удается найти модуль, при импорте компонента машинописного текста - PullRequest
0 голосов
/ 24 января 2019

Путь к моим стилизованным объектам правильный, но не уверен, почему я получаю следующую ошибку:

Не удается найти модуль '../../shared/models' из 'Astronaut.tsx '

import {moonHoldings} из' ../../shared/models';

Мой простой тест Jest:

import React from 'react';
import { shallow } from 'enzyme';
import toJson from 'enzyme-to-json';

// @ts-ignore (works with .tsx)
import Astronaut from '../Astronaut.tsx';

describe('<Astronaut /> component', () => {
  describe('should render', () => {
    const wrapper = shallow(<Astronaut showLogo={true} />);
    it ('should render a component matching the snapshot', () => {
      const tree = toJson(wrapper);
      expect(tree).toMatchSnapshot();
      expect(wrapper).toHaveLength(1);
    });
  });
});

TheКомпонент Astronaut

import React from 'react';

import { moonHoldings } from '../../shared/models';  // <-- The problem
import { astronaut } from '../../styles'; // <-- This works

const { AstronautContainer, Heading } = astronaut;

interface LogoCheck {
  showLogo: boolean;
}

export default (showLogo: LogoCheck) =>  (
  <AstronautContainer>
    { showLogo.showLogo === true ? <Heading>{moonHoldings}</Heading> : null }
    <img src="static/astronaut.png" alt="astronaut" />
  </AstronautContainer>
);

Раздел конфигурации Jest моего Package.json

"jest": {
  "setupTestFrameworkScriptFile": "<rootDir>/jest.setup.js",
  "testPathIgnorePatterns": [
    "<rootDir>/.next/",
    "<rootDir>/node_modules/"
  ],
  "transform": {
    "\\.(gql|graphql)$": "jest-transform-graphql",
    ".*": "babel-jest",
    "^.+\\.js?$": "babel-jest"
  },
  "moduleFileExtensions": [
    "js",
    "json",
    "ts",
    "tsx"
  ],
  "modulePaths": [
    "<rootDir>/components/",
    "<rootDir>/pages/",
    "<rootDir>/shared/"
  ]
}

И структура моей папки:

enter image description here

enter image description here

1 Ответ

0 голосов
/ 24 января 2019

Хорошо. Я только что исправил это, создав индексный файл внутри папки / shared и затем экспортировав модели таким образом (хотя он должен был работать без индексного файла):

import { moonHoldings } from '../../shared';

enter image description here

И index.js:

export { moonHoldings, nomicsLink } from './copy';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...