import { expect, test } from 'vitest'; import { resolveRuntimeNotFoundRecoveryAction, resolveWorkNotFoundRecoveryAction, } from './runtimeNotFoundRecovery'; test('runtime not found recovery returns home after direct runtime route alert', () => { expect(resolveRuntimeNotFoundRecoveryAction('/runtime/puzzle')).toEqual({ nextStage: 'platform', nextPath: '/', shouldAlert: true, }); expect(resolveRuntimeNotFoundRecoveryAction('/runtime/puzzle/')).toEqual({ nextStage: 'platform', nextPath: '/', shouldAlert: true, }); }); test('runtime not found recovery only handles direct runtime routes', () => { expect(resolveRuntimeNotFoundRecoveryAction('/gallery/puzzle/detail')).toBeNull(); expect(resolveRuntimeNotFoundRecoveryAction('/creation/puzzle/result')).toBeNull(); }); test('work not found recovery returns home for direct public detail routes', () => { expect(resolveWorkNotFoundRecoveryAction('/works/detail')).toEqual({ nextStage: 'platform', nextPath: '/', shouldAlert: true, }); expect(resolveWorkNotFoundRecoveryAction('/works/detail/')).toEqual({ nextStage: 'platform', nextPath: '/', shouldAlert: true, }); expect(resolveWorkNotFoundRecoveryAction('/gallery/puzzle/detail')).toEqual({ nextStage: 'platform', nextPath: '/', shouldAlert: true, }); });