Files
openmaic/OpenMAIC/packages/@openmaic/generation/test/scene-prompt-golden.test.ts
2026-08-16 14:58:47 +08:00

45 lines
1.3 KiB
TypeScript

import { expect, it } from 'vitest';
import type { AICallFn } from '@openmaic/generation';
import { generateSceneContent } from '@openmaic/generation';
import {
pblOutline,
quizOutline,
slideOutline,
validPBLResponse,
widgetOutline,
} from './scene-fixtures.js';
it('pins representative system and user prompts for every scene kind', async () => {
const captured: Record<string, { system: string; user: string }> = {};
const capture =
(kind: string, response: string): AICallFn =>
async (system, user) => {
captured[kind] = { system, user };
return response;
};
await generateSceneContent(
slideOutline(),
capture(
'slide',
JSON.stringify({ elements: [], background: { type: 'solid', color: '#fff' } }),
),
{ languageDirective: 'Teach in English.' },
);
await generateSceneContent(quizOutline(), capture('quiz', '[]'), {
languageDirective: 'Teach in English.',
});
await generateSceneContent(
widgetOutline(),
capture('interactive', '<!DOCTYPE html><html><head></head><body></body></html>'),
{ languageDirective: 'Teach in English.' },
);
await generateSceneContent(pblOutline(), capture('pbl', validPBLResponse()), {
languageDirective: 'Reply in English.',
targetLanguage: 'en-US',
});
expect(captured).toMatchSnapshot();
});