Ошибка окна undefined при добавлении модульного теста в проект nextjs / response / jest - PullRequest
0 голосов
/ 10 июля 2020

Привет, ребята, у меня возникает проблема, когда я пытаюсь добавить модульный тест в свой проект. Мой начальный тест basi c пройдет успешно, но я получу ReferenceError: window is not defined . Я пробовал несколько разных решений, но не повезло. Любая помощь и / или руководство будут оценены.

Test / Spe c:

import 'jsdom-global/register';
import Enzyme  from 'enzyme';
import { mount } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import React from 'react';
import SomeComponent from './someComponent';

Enzyme.configure({ adapter: new Adapter() });

describe('SomeComponent', () => {
let container;

const mockedProps = {
 message: 'You're test is due next week.',
 url: 'https://private-url.edu',
 label: 'Visit student portal'
};

beforeEach(() => {
 container = mount(
  <SomeComponent {...mockedProps}/>
 );
});

it('Should contain message', () => {
  expect(
   container.containsMatchingElement(
    <p>
      {mockedProps.message} <a href={mockedProps.url}>{mockedProps.label}</a>
    </p>
   )
  ).toBe(true);
 });
});

Jest Config File:

module.exports = {
clearMocks: true,

coverageDirectory: "coverage",

coveragePathIgnorePatterns: [
"/node_modules/"
],

"moduleNameMapper": {
"\\.(css|less|scss|sss|styl)$": "<rootDir>/node_modules/jest-css-modules"
},

setupFiles: ["jest-localstorage-mock"],

testEnvironment: "node",

testMatch: [
 "**/__tests__/**/*.[jt]s?(x)",
 "**/?(*.)+(spec|test).[tj]s?(x)"
],

transform: {
  '^.+\\.js$': 'babel-jest',
  '.+\\.(css|styl|less|sass|scss)$': 'jest-transform-css'
 }
};

Я попытался изменить testEnvironment в файле конфигурации jest с: «node» на «jest-environment-jsdom», но я ни один из моих модульных тестов не прошел, и я получил сообщение об ошибке, которое мне нужно иметь как минимум один модульный тест, когда я это делаю.

Дополнительные примечания: эта ошибка началась, когда я обновил Next js до последней версии 9.4.4

...