mission-control/src/lib/__tests__/onboarding-session.test.ts

53 lines
1.5 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { getOnboardingSessionDecision } from '@/lib/onboarding-session'
describe('onboarding-session', () => {
it('opens onboarding for admins when the server says it should show', () => {
expect(
getOnboardingSessionDecision({
isAdmin: true,
serverShowOnboarding: true,
completed: false,
skipped: false,
dismissedThisSession: false,
})
).toEqual({ shouldOpen: true, replayFromStart: false })
})
it('replays onboarding from the start on a fresh session after completion', () => {
expect(
getOnboardingSessionDecision({
isAdmin: true,
serverShowOnboarding: false,
completed: true,
skipped: false,
dismissedThisSession: false,
})
).toEqual({ shouldOpen: true, replayFromStart: true })
})
it('does not reopen onboarding once dismissed in the current session', () => {
expect(
getOnboardingSessionDecision({
isAdmin: true,
serverShowOnboarding: false,
completed: true,
skipped: false,
dismissedThisSession: true,
})
).toEqual({ shouldOpen: false, replayFromStart: false })
})
it('never opens onboarding for non-admin users', () => {
expect(
getOnboardingSessionDecision({
isAdmin: false,
serverShowOnboarding: true,
completed: false,
skipped: false,
dismissedThisSession: false,
})
).toEqual({ shouldOpen: false, replayFromStart: false })
})
})