import { parseRoute, buildSearch } from './routes'; describe('parseRoute', () => { it('пустой адрес - главная', () => { expect(parseRoute('')).toEqual({ page: 'hub' }); }); it('адрес с разделом works, проектом 3 и объектом 41', () => { expect(parseRoute('?page=works&projectId=3&objectId=41')).toEqual({ page: 'works', projectId: '3', objectId: '41' }); }); it('опечатка в разделе (objectz) — должна быть главная, а projectId сохраниться', () => { expect(parseRoute('?page=objectz&projectId=3')).toEqual({ page: 'hub', projectId: '3' }); }); it('адрес только с projectId=7', () => { expect(parseRoute('?projectId=7')).toEqual({ page: 'hub', projectId: '7' }); }); it('сверка погоды с периодом', () => { expect(parseRoute('?page=weather&projectId=7&start=2026-10-01&end=2026-10-07')).toEqual({ page: 'weather', projectId: '7', start: '2026-10-01', end: '2026-10-07' }); }); }); describe('buildSearch', () => { it('параметры прошлого маршрута не переносятся, посторонние параметры страницы остаются', () => { expect(buildSearch({ page: 'weather', projectId: '7', start: '2026-10-01' }, '?debug=true&reportId=r1')).toEqual( '?debug=true&page=weather&projectId=7&start=2026-10-01' ); }); });