NODEDC_1C/llm_normalizer/backend/tests/promptBuilder.test.ts

39 lines
1.5 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { buildPromptBundle, listBuiltinPromptPresets, loadDefaultPrompts } from "../src/services/promptBuilder";
describe("promptBuilder", () => {
it("loads default prompts", () => {
const defaults = loadDefaultPrompts();
expect(defaults.systemPrompt.length).toBeGreaterThan(20);
expect(defaults.developerPrompt.length).toBeGreaterThan(20);
expect(defaults.domainPrompt.length).toBeGreaterThan(20);
});
it("exposes v1, v1.1, v1.1.1, v1.1.2, v1.1.2.1, v2, v2.0.1 and v2.0.2 builtin presets", () => {
const presets = listBuiltinPromptPresets();
const versions = presets.map((item) => item.prompt_version);
expect(versions).toContain("normalizer_v1");
expect(versions).toContain("normalizer_v1_1");
expect(versions).toContain("normalizer_v1_1_1");
expect(versions).toContain("normalizer_v1_1_2");
expect(versions).toContain("normalizer_v1_1_2_1");
expect(versions).toContain("normalizer_v2");
expect(versions).toContain("normalizer_v2_0_1");
expect(versions).toContain("normalizer_v2_0_2");
});
it("merges user prompt values", () => {
const bundle = buildPromptBundle({
systemPrompt: "S",
developerPrompt: "D",
domainPrompt: "N",
schemaNotes: "schema",
fewShotExamples: "fewshot"
});
expect(bundle.systemPrompt).toBe("S");
expect(bundle.developerPrompt).toBe("D");
expect(bundle.domainPrompt).toBe("N");
expect(bundle.combinedDeveloperPrompt.includes("fewshot")).toBe(true);
});
});