31 lines
1.4 KiB
TypeScript
31 lines
1.4 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { intentToOnboardingPath, normalizeIntent } from './auth-intent';
|
|
|
|
describe('normalizeIntent', () => {
|
|
it('normalizes all supported intent aliases', () => {
|
|
expect(normalizeIntent('customer')).toBe('customer');
|
|
expect(normalizeIntent('professional')).toBe('professional');
|
|
expect(normalizeIntent('pro')).toBe('professional');
|
|
expect(normalizeIntent('company')).toBe('company');
|
|
expect(normalizeIntent('employer')).toBe('company');
|
|
expect(normalizeIntent('job_seeker')).toBe('job_seeker');
|
|
expect(normalizeIntent('job-seeker')).toBe('job_seeker');
|
|
expect(normalizeIntent('jobseeker')).toBe('job_seeker');
|
|
});
|
|
|
|
it('returns null for unknown values', () => {
|
|
expect(normalizeIntent('unknown')).toBeNull();
|
|
expect(normalizeIntent('')).toBeNull();
|
|
expect(normalizeIntent(null)).toBeNull();
|
|
expect(normalizeIntent(undefined)).toBeNull();
|
|
});
|
|
});
|
|
|
|
describe('intentToOnboardingPath', () => {
|
|
it('maps each intent to expected onboarding path', () => {
|
|
expect(intentToOnboardingPath('company')).toBe('/users/onboarding/company');
|
|
expect(intentToOnboardingPath('job_seeker')).toBe('/users/onboarding/job-seeker');
|
|
expect(intentToOnboardingPath('professional')).toBe('/users/onboarding/professional');
|
|
expect(intentToOnboardingPath('customer')).toBe('/users/onboarding/customer');
|
|
});
|
|
});
|