| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import { describe, expect, it } from "vitest";
- import {
- formatImportCompletionLines,
- formatImportDiscoveryLine,
- formatImportResumeLine,
- formatWriteCompletionLines,
- formatWriteDoneLine,
- formatWriteStartLine,
- } from "../progress-text.js";
- describe("CLI progress text", () => {
- it("formats Chinese write progress lines", () => {
- expect(formatWriteStartLine("zh", 1, 3, "demo-book")).toBe('[1/3] 为「demo-book」撰写章节...');
- expect(formatWriteCompletionLines("zh", {
- chapterNumber: 7,
- title: "潮声夜渡",
- wordCount: 2345,
- passedAudit: false,
- revised: true,
- status: "audit-failed",
- issues: [
- { severity: "warning", category: "continuity", description: "时间线略有跳变" },
- ],
- })).toEqual([
- " 第7章:潮声夜渡",
- " 字数:2345字",
- " 审计:需复核",
- " 自动修正:已执行(已修复关键问题)",
- " 状态:audit-failed",
- " 问题:",
- " [warning] continuity: 时间线略有跳变",
- "",
- ]);
- expect(formatWriteDoneLine("zh")).toBe("完成。");
- });
- it("formats English write progress lines", () => {
- expect(formatWriteStartLine("en", 2, 5, "demo-book")).toBe('[2/5] Writing chapter for "demo-book"...');
- expect(formatWriteCompletionLines("en", {
- chapterNumber: 7,
- title: "Harbor Wake",
- wordCount: 2310,
- passedAudit: true,
- revised: false,
- status: "ready-for-review",
- issues: [],
- })).toEqual([
- " Chapter 7: Harbor Wake",
- " Length: 2310 words",
- " Audit: PASSED",
- " Status: ready-for-review",
- "",
- ]);
- expect(formatWriteDoneLine("en")).toBe("Done.");
- });
- it("formats Chinese import progress lines", () => {
- expect(formatImportDiscoveryLine("zh", 12, "demo-book")).toBe('发现 12 章,准备导入到「demo-book」。');
- expect(formatImportResumeLine("zh", 8)).toBe("从第 8 章继续导入。");
- expect(formatImportCompletionLines("zh", {
- importedCount: 12,
- totalCountLabel: "24000字",
- nextChapter: 13,
- bookId: "demo-book",
- })).toEqual([
- "导入完成:",
- " 已导入章节:12",
- " 总长度:24000字",
- " 下一章编号:13",
- '',
- '运行 "inkos write next demo-book" 继续写作。',
- ]);
- });
- it("formats English import progress lines", () => {
- expect(formatImportDiscoveryLine("en", 12, "demo-book")).toBe('Found 12 chapters to import into "demo-book".');
- expect(formatImportResumeLine("en", 8)).toBe("Resuming from chapter 8.");
- expect(formatImportCompletionLines("en", {
- importedCount: 12,
- totalCountLabel: "24000 words",
- nextChapter: 13,
- bookId: "demo-book",
- })).toEqual([
- "Import complete:",
- " Chapters imported: 12",
- " Total length: 24000 words",
- " Next chapter number: 13",
- '',
- 'Run "inkos write next demo-book" to continue writing.',
- ]);
- });
- });
|