import { expect, it } from 'vitest' import { appointmentExternalTarget, appointmentReturnQuery, appointmentReturnTarget } from './workNavigation' it('preserves the item, prerequisite stack, global scope and page through an external action', () => { const target = appointmentExternalTarget('/overseas-master-data/trips/TR-001?tab=loading', { workAnchor: '2026-10-15', workItem: 'work:1', workOrigins: '["work:0"]', workScope: 'global', workView: 'UNDATED', workPage: '3' }) expect(target.path).toBe('/overseas-master-data/trips/TR-001'); expect(target.query.tab).toBe('loading') const back = appointmentReturnTarget(target.query)! const query = new URL(back, 'https://appointment.invalid').searchParams expect(query.get('workOrigins')).toBe('["work:0"]'); expect(query.get('workPage')).toBe('3'); expect(query.get('workView')).toBe('UNDATED') expect(appointmentReturnQuery(target.query)).toEqual({ appointmentReturn: back }) }) it.each(['https://example.com/appointment-calendar?workItem=1', '//example.com/appointment-calendar?workItem=1', '/other?workItem=1', '/appointment-calendar/../other?x=1', '/appointment-calendar?x=1#fragment'])('rejects an unrelated return destination %s', value => { expect(appointmentReturnTarget({ appointmentReturn: value })).toBeNull() })