feat(appointment): integrate work calendar and original business actions
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
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()
|
||||
})
|
||||
Reference in New Issue
Block a user