File size: 1,178 Bytes
a0ebf39 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import { describe, test, expect } from 'vitest';
import { loadPrompt, loadSnippet, buildPrompt } from '@/lib/prompts';
describe('lib/prompts loader', () => {
test('loads a known template + interpolates variables', () => {
const result = buildPrompt('slide-actions', {
title: 'Test Slide',
keyPoints: '1. point one',
description: 'desc',
elements: '[]',
courseContext: '',
agents: '',
userProfile: '',
languageDirective: 'en',
});
expect(result).not.toBeNull();
expect(result!.system.length).toBeGreaterThan(100);
expect(result!.user).toContain('Test Slide');
});
test('loads a snippet', () => {
const s = loadSnippet('json-output-rules');
expect(s).toContain('JSON');
});
test('returns null for unknown promptId', () => {
// @ts-expect-error — testing runtime behavior with invalid id
expect(loadPrompt('does-not-exist')).toBeNull();
});
test('throws on unknown snippetId instead of passing through literal', () => {
// @ts-expect-error — testing runtime behavior with invalid id
expect(() => loadSnippet('does-not-exist')).toThrow(/Snippet not found/);
});
});
|