import { describe, it, expect } from 'vitest' import { parseHash, viewToHash, VALID_VIEWS, DEFAULT_VIEW } from '../../src/lib/router.js' describe('parseHash', () => { it('parses a standard hash route', () => { expect(parseHash('#/hourly')).toBe('hourly') expect(parseHash('#/radar')).toBe('radar') }) it('handles a bare segment without a leading slash', () => { expect(parseHash('daily')).toBe('daily') expect(parseHash('#daily')).toBe('daily') }) it('falls back to the default view for empty or unknown hashes', () => { expect(parseHash('')).toBe(DEFAULT_VIEW) expect(parseHash('#')).toBe(DEFAULT_VIEW) expect(parseHash('#/nope')).toBe(DEFAULT_VIEW) expect(parseHash('#/current')).toBe('current') }) it('ignores a trailing path after the view segment', () => { expect(parseHash('#/detail/sub')).toBe('detail') }) }) describe('viewToHash', () => { it('round-trips a valid view', () => { for (const v of VALID_VIEWS) { expect(viewToHash(v)).toBe(`#/${v}`) expect(parseHash(viewToHash(v))).toBe(v) } }) })