import { describe, expect, it } from 'vitest'; import { resolveOnboardingRedirect } from './onboardingGuard'; import { ADMIN_WELCOME_EVENT_PATH, ADMIN_WELCOME_PACKAGES_PATH, ADMIN_WELCOME_SUMMARY_PATH, } from '../../constants'; describe('resolveOnboardingRedirect', () => { it('returns null when events exist', () => { const result = resolveOnboardingRedirect({ hasEvents: true, hasActivePackage: false, selectedPackageId: null, pathname: '/event-admin/mobile/dashboard', isWelcomePath: false, isBillingPath: false, }); expect(result).toBeNull(); }); it('returns null for welcome paths', () => { const result = resolveOnboardingRedirect({ hasEvents: false, hasActivePackage: false, selectedPackageId: null, pathname: ADMIN_WELCOME_PACKAGES_PATH, isWelcomePath: true, isBillingPath: false, }); expect(result).toBeNull(); }); it('returns null for billing paths', () => { const result = resolveOnboardingRedirect({ hasEvents: false, hasActivePackage: false, selectedPackageId: null, pathname: '/event-admin/mobile/billing', isWelcomePath: false, isBillingPath: true, }); expect(result).toBeNull(); }); it('redirects to event setup when package active', () => { const result = resolveOnboardingRedirect({ hasEvents: false, hasActivePackage: true, selectedPackageId: null, pathname: '/event-admin/mobile/dashboard', isWelcomePath: false, isBillingPath: false, }); expect(result).toBe(ADMIN_WELCOME_EVENT_PATH); }); it('redirects to summary when selection exists', () => { const result = resolveOnboardingRedirect({ hasEvents: false, hasActivePackage: false, selectedPackageId: 5, pathname: '/event-admin/mobile/dashboard', isWelcomePath: false, isBillingPath: false, }); expect(result).toBe(ADMIN_WELCOME_SUMMARY_PATH); }); it('redirects to packages when no selection exists', () => { const result = resolveOnboardingRedirect({ hasEvents: false, hasActivePackage: false, selectedPackageId: null, pathname: '/event-admin/mobile/dashboard', isWelcomePath: false, isBillingPath: false, }); expect(result).toBe(ADMIN_WELCOME_PACKAGES_PATH); }); it('does not redirect when already on target', () => { const result = resolveOnboardingRedirect({ hasEvents: false, hasActivePackage: false, selectedPackageId: null, pathname: ADMIN_WELCOME_PACKAGES_PATH, isWelcomePath: false, isBillingPath: false, }); expect(result).toBeNull(); }); });