import { describe, it, expect } from 'vitest'; import { RecordPageViewInputViewModel } from './RecordPageViewInputViewModel'; describe('RecordPageViewInputViewModel', () => { it('maps basic fields from input data', () => { const vm = new RecordPageViewInputViewModel({ path: '/home', userId: 'user-1' }); expect(vm.path).toBe('/home'); expect(vm.userId).toBe('user-1'); }); it('normalizes displayPath to always start with a slash', () => { const withLeadingSlash = new RecordPageViewInputViewModel({ path: '/dashboard' }); const withoutLeadingSlash = new RecordPageViewInputViewModel({ path: 'settings' }); expect(withLeadingSlash.displayPath).toBe('/dashboard'); expect(withoutLeadingSlash.displayPath).toBe('/settings'); }); it('detects when user context is present', () => { const withUser = new RecordPageViewInputViewModel({ path: '/', userId: 'user-1' }); const withoutUser = new RecordPageViewInputViewModel({ path: '/' }); const emptyUserId = new RecordPageViewInputViewModel({ path: '/', userId: '' }); expect(withUser.hasUserContext).toBe(true); expect(withoutUser.hasUserContext).toBe(false); expect(emptyUserId.hasUserContext).toBe(false); }); });