d3ro-voice/apps/mobile-rn/__tests__/onboarding-navigation.test.ts
2026-08-29 18:33:45 +09:00

23 lines
1,012 B
TypeScript

import { resolveOnboardingExit } from '../src/screens/OnboardingScreen'
describe('onboarding exit contract', () => {
test('moves an authenticated fresh flow to Main after persistence succeeds', () => {
expect(resolveOnboardingExit(true, true, false, false)).toBe('main')
expect(resolveOnboardingExit(true, true, false, true)).toBe('main')
})
test('never navigates when local persistence fails', () => {
expect(resolveOnboardingExit(false, true, false, true)).toBe('none')
expect(resolveOnboardingExit(false, true, true, true)).toBe('none')
})
test('preserves the unauthenticated fresh-flow branch selection', () => {
expect(resolveOnboardingExit(true, false, false, false)).toBe('none')
expect(resolveOnboardingExit(true, false, false, true)).toBe('none')
})
test('replay exits only when a prior route exists', () => {
expect(resolveOnboardingExit(true, true, true, true)).toBe('back')
expect(resolveOnboardingExit(true, true, true, false)).toBe('none')
})
})