d606f8371c
Ports the weather check added to stroy-bot-main on 2026-10-16: daily station weather, report positions with weather per shift and the AI assessment of working conditions. Opens as ?page=weather&start=&end= instead of the #weathercheck hash, and hub dates survive the way back. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
37 lines
1.5 KiB
TypeScript
37 lines
1.5 KiB
TypeScript
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'
|
||
);
|
||
});
|
||
});
|