UNPKG

@exlinep/router

Version:
56 lines (43 loc) 1.52 kB
import { History } from './History'; import { Route } from './Route'; import { State, stateFromLocation } from './State'; import { Page } from './Page'; import { cleanup } from '@testing-library/react'; function getRoute() { return new Route(new Page('main', 'main'), '/', {}); } function getState(): State { return stateFromLocation(0); } describe('History', () => { afterEach(() => { cleanup(); window.history.replaceState({}, '', '/#'); }); it('check', () => { const h = new History(); expect(h.getCurrentIndex()).toEqual(0); expect(h.getLength()).toEqual(0); h.push( getRoute(), getState() ); expect(h.getCurrentIndex()).toEqual(0); expect(h.getLength()).toEqual(1); h.push( getRoute(), getState() ); expect(h.getCurrentIndex()).toEqual(1); expect(h.getLength()).toEqual(2); h.push( getRoute(), getState() ); expect(h.getCurrentIndex()).toEqual(2); expect(h.getLength()).toEqual(3); h.replace( getRoute(), getState() ); expect(h.getCurrentIndex()).toEqual(2); expect(h.getLength()).toEqual(3); h.push( getRoute(), getState() ); expect(h.getCurrentIndex()).toEqual(3); expect(h.getLength()).toEqual(4); h.setCurrentIndex(h.getCurrentIndex() - 2); expect(h.getCurrentIndex()).toEqual(1); expect(h.getLength()).toEqual(4); h.push( getRoute(), getState() ); expect(h.getCurrentIndex()).toEqual(2); expect(h.getLength()).toEqual(3); }); });