32 lines
1.2 KiB
JavaScript
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");
|
|
});
|
|
});
|