Я застрял в поиске, как изменить URL в Jest. Я искал запросы github и stackoverflow для решений, но не нашел ничего, что работает .. Может, я здесь что-то не так делаю ...
Пока я пробовал:
Безрезультатно ... Мое окно становится неопределенным, поэтому я вообще не могу прочитать URL ...
Я использую:
"babel-jest": "^ 22.4.3",
«фермент»: «^ 3.3.0»,
«энзим-адаптер-реакция-16»: «^ 1.1.1»,
NavDrawer.test.jsx
import React from 'react';
import { configure, mount } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import MemoryRouter from 'react-router-dom/MemoryRouter';
import NavDrawer from '../../../src/shared/components/NavDrawer';
configure({ adapter: new Adapter() });
// prettier-ignore
describe('<NavDrawer />', () => {
let wrapper;
beforeEach(() => {
wrapper = mount((
<MemoryRouter>
<NavDrawer />
</MemoryRouter>
)).find('PersistentDrawer');
});
it('renders AppBar component and Drawer component', () => {
expect(wrapper.exists('AppBar')).toEqual(true);
expect(wrapper.exists('Drawer')).toEqual(true);
});
describe('when a user clicks the hamburger button', () => {
beforeEach(() => {
wrapper.find('IconButton').first().simulate('click');
});
it('should set state open to true', () => {
expect(wrapper.instance().state.open).toEqual(true);
});
describe('when user click on nav item', () => {
let nestedList;
let security;
beforeEach(() => {
nestedList = wrapper.find('NestedList');
security = nestedList.find('ListItem').at(3);
security.simulate('click');
history.replaceState({}, '', '/security');
});
it('should update url to match route', () => {
expect(window).to.equal('/security');
});
it('should change App bar title in NavDrawer to `Security Dashboard`', () => {
expect(wrapper.find('Typography').first().text()).toBe('Security Dashboard');
});
it('should set state open back to false', () => {
expect(wrapper.instance().state.open).toEqual(false);
});
});
});
});
package.json
"jest": {
"verbose": true,
"testURL": "http://localhost",
"testEnvironment": "jsdom",
"moduleNameMapper": {
"\\.(css|less|scss|sass)$": "identity-obj-proxy"
},
"setupFiles": [
"raf/polyfill"
],
"coverageDirectory": "./coverage/",
"transform": {
"^.+\\.(js|jsx)$": "babel-jest",
"^.+\\.(css|scss|less)$": "jest-css-modules"
},
"transformIgnorePatterns": [
"node_modules/(?!(@core)/)"
],
"globals": {
"NODE_ENV": "test",
"window": {}
},
"moduleFileExtensions": [
"js",
"jsx"
],
"moduleDirectories": [
"node_modules"
]
},