Не могу смутить изменение URL с помощью окна в ферменте Jest (Babel-Jest) - PullRequest
0 голосов
/ 17 января 2019

Я застрял в поиске, как изменить 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"
    ]
  },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...