Привет, ребята, у меня возникает проблема, когда я пытаюсь добавить модульный тест в свой проект. Мой начальный тест 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