nxtgauge-frontend-solid/src/lib/auth-intent.test.ts

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');
});
});