51 lines
1.9 KiB
TypeScript
51 lines
1.9 KiB
TypeScript
|
|
import { describe, expect, it } from 'vitest';
|
||
|
|
import { resolveRoleApprovedTourSteps, resolveWelcomeTourSteps } from './guided-tour-content';
|
||
|
|
|
||
|
|
describe('resolveWelcomeTourSteps', () => {
|
||
|
|
it('uses runtime-config welcome steps when provided', () => {
|
||
|
|
const steps = resolveWelcomeTourSteps({
|
||
|
|
welcome: [
|
||
|
|
{ title: 'A', body: 'B' },
|
||
|
|
{ title: 'C', body: 'D' },
|
||
|
|
],
|
||
|
|
});
|
||
|
|
expect(steps).toHaveLength(2);
|
||
|
|
expect(steps[0].title).toBe('A');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('falls back to default steps when runtime data is missing', () => {
|
||
|
|
const steps = resolveWelcomeTourSteps();
|
||
|
|
expect(steps.length).toBeGreaterThan(0);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe('resolveRoleApprovedTourSteps', () => {
|
||
|
|
it('returns role-specific defaults for primary roles', () => {
|
||
|
|
expect(resolveRoleApprovedTourSteps('COMPANY').length).toBeGreaterThan(0);
|
||
|
|
expect(resolveRoleApprovedTourSteps('CUSTOMER').length).toBeGreaterThan(0);
|
||
|
|
expect(resolveRoleApprovedTourSteps('JOB_SEEKER').length).toBeGreaterThan(0);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('returns professional defaults for non-primary roles', () => {
|
||
|
|
const steps = resolveRoleApprovedTourSteps('PHOTOGRAPHER');
|
||
|
|
expect(steps.length).toBeGreaterThan(0);
|
||
|
|
expect(steps[0].title.toLowerCase()).toContain('photographer');
|
||
|
|
});
|
||
|
|
|
||
|
|
it('uses runtime role override when present', () => {
|
||
|
|
const steps = resolveRoleApprovedTourSteps('TUTOR', {
|
||
|
|
roles: {
|
||
|
|
TUTOR: [{ title: 'Tutor Custom', body: 'Custom flow' }],
|
||
|
|
},
|
||
|
|
});
|
||
|
|
expect(steps).toEqual([{ title: 'Tutor Custom', body: 'Custom flow' }]);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('uses runtime role approved default when specific role override is absent', () => {
|
||
|
|
const steps = resolveRoleApprovedTourSteps('MAKEUP_ARTIST', {
|
||
|
|
role_approved_default: [{ title: 'Default Custom', body: 'Default flow' }],
|
||
|
|
});
|
||
|
|
expect(steps).toEqual([{ title: 'Default Custom', body: 'Default flow' }]);
|
||
|
|
});
|
||
|
|
});
|