Files
homelab/chat/lib/import-title-template.test.mjs

32 lines
1.2 KiB
JavaScript

import {describe, expect, test} from "bun:test";
import {applyImportTitleTemplate, importFileStem, importSourceFolder} from "./import-title-template.ts";
const context = {
title: "Repair auth",
format: "codex",
file: "rollout-123",
folder: "13",
date: "2026-08-13",
model: "gpt-5.6-sol",
provider: "openai",
index: 7
};
describe("import title templates", () => {
test("renders paths and import metadata", () => {
expect(applyImportTitleTemplate("{format}/{date}/{title}", context)).toBe("codex/2026-08-13/Repair auth");
expect(applyImportTitleTemplate("{index} · {file} · {model}", context)).toBe("7 · rollout-123 · gpt-5.6-sol");
});
test("defaults to the source title and rejects unknown variables", () => {
expect(applyImportTitleTemplate("", context)).toBe("Repair auth");
expect(() => applyImportTitleTemplate("{project}/{title}", context)).toThrow("未知标题变量");
});
test("extracts source file and folder labels", () => {
expect(importFileStem("backup.xiteng-chat.json")).toBe("backup");
expect(importFileStem("rollout.jsonl")).toBe("rollout");
expect(importSourceFolder("sessions.zip / nested / rollout.jsonl")).toBe("nested");
});
});