import { describe, expect, it } from 'vitest'; import { routeFromHash, projectPath } from './router'; function setHash(h: string) { window.location.hash = h; } describe('router', () => { it('routes auth pages', () => { setHash('#/login'); expect(routeFromHash().name).toBe('login'); setHash('#/register'); expect(routeFromHash().name).toBe('register'); setHash('#/reset'); expect(routeFromHash().name).toBe('reset'); }); it('routes protected areas', () => { setHash('#/projects'); expect(routeFromHash().name).toBe('projects'); setHash('#/datasets'); expect(routeFromHash().name).toBe('datasets'); setHash('#/runs'); expect(routeFromHash().name).toBe('runs'); setHash('#/usage'); expect(routeFromHash().name).toBe('usage'); setHash('#/account'); expect(routeFromHash().name).toBe('account'); setHash('#/admin'); expect(routeFromHash().name).toBe('admin'); }); it('routes project tabs', () => { setHash('#/projects/abc-1/strategy'); const r = routeFromHash(); expect(r.name).toBe('project-strategy'); expect(r.params.id).toBe('abc-1'); setHash('#/projects/abc-1'); expect(routeFromHash().name).toBe('project-data'); setHash('#/projects/abc-1/backtest'); expect(routeFromHash().name).toBe('project-backtest'); setHash('#/projects/abc-1/results?run=r9'); const rr = routeFromHash(); expect(rr.name).toBe('project-results'); expect(rr.query.get('run')).toBe('r9'); }); it('projects deep path builder', () => { expect(projectPath('id1', 'strategy')).toBe('/projects/id1/strategy'); }); });