Files
openmaic/OpenMAIC/tests/pbl/v2/milestone-card.test.ts
2026-08-16 14:58:47 +08:00

42 lines
1.3 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
milestoneHandoverCtaState,
stripFinalMilestoneContinueGuidance,
} from '@/components/scene-renderers/pbl/v2/eval-cards/milestone-card';
import type { PBLHandover } from '@/lib/pbl/v2/types';
function handover(consumed: boolean): PBLHandover {
return {
completedMilestoneId: 'ms-1',
completedMilestoneTitle: 'Stage 1',
nextMilestoneId: 'ms-2',
nextMilestoneTitle: 'Stage 2',
nextTaskId: 'mt-2',
nextTaskTitle: 'Task 2',
consumed,
};
}
describe('PBL v2 milestone card handover CTA', () => {
it('uses a ready CTA before the learner continues', () => {
expect(milestoneHandoverCtaState(handover(false))).toBe('ready');
});
it('keeps a consumed CTA state after the learner enters the next stage', () => {
expect(milestoneHandoverCtaState(handover(true))).toBe('consumed');
});
it('hides the handover CTA for the final milestone', () => {
expect(milestoneHandoverCtaState(undefined)).toBe('hidden');
});
it('removes Continue guidance from the final milestone narrative only', () => {
expect(
stripFinalMilestoneContinueGuidance(
'这一阶段完成了。点击 Continue 继续往前走吧。你已经可以查看项目总评了。',
),
).toBe('这一阶段完成了。你已经可以查看项目总评了。');
});
});