- 上下文清单、任务列表与详情、恢复控制、运行观察、创作对话与消息流、正式变更决策面板、正文写作与候选审阅、资料研究等页面同步本轮后端能力。 - 事件标签表补齐后端事件类型;查询键与生成客户端随 HTTP 契约重新生成。 - 依赖调整后 lockfile 同步;交互用例与浏览器旅程 spec 一并更新。 - 证据:make 前端检查(lint + typecheck + Pi 工具桥 tsc)exit 0;make 前端测试 37 文件 / 120 用例通过。
69 lines
3.0 KiB
TypeScript
69 lines
3.0 KiB
TypeScript
import { render, screen } from "@testing-library/react";
|
||
import { describe, expect, it } from "vitest";
|
||
import { Ui文学报告, Ui诊断报告 } from "../../src/功能/审校修订/问题清单";
|
||
import type { 文学结果, 诊断结果 } from "../../src/功能/审校修订/数据";
|
||
|
||
describe("审校报告的覆盖、过期与修留问", () => {
|
||
// @muse-case {"case_id":"NC-review-report-partial","environment":"离线组件","given":"NC-review-report-partial:未审与零问题分开显示","when":"作者页面操作","then":["NC-review-report-partial:未审与零问题分开显示"],"contract":"docs/系统架构/新版设计/模块设计/B06-审校修订.md"}
|
||
it("NC-review-report-partial:未审与零问题分开显示", () => {
|
||
const result: 文学结果 = {
|
||
task_id: "t",
|
||
task_state: "failed",
|
||
report_id: null,
|
||
current_status: "SOURCE_STALE",
|
||
stale_reasons: ["正文已更新"],
|
||
report: {
|
||
findings: [],
|
||
dimension_status: {
|
||
continuity: "partial",
|
||
craft: "insufficient_evidence",
|
||
voice: "uncalibrated",
|
||
},
|
||
unreviewed_shards: ["tail"],
|
||
counts: {},
|
||
coverage: { 范围完整: false, 未审区间: [[10, 20]] },
|
||
model_verified: false,
|
||
},
|
||
};
|
||
render(<Ui文学报告 value={result} />);
|
||
expect(screen.getByText(/尚有 1 片未审/)).toBeTruthy();
|
||
expect(screen.getByText(/声音:未标定/)).toBeTruthy();
|
||
expect(screen.getByText(/创作质量:依据不足/)).toBeTruthy();
|
||
expect(screen.getByRole("alert").textContent).toContain("正文已更新");
|
||
expect(screen.queryByText("完整文学报告")).toBeNull();
|
||
});
|
||
// @muse-case {"case_id":"NC-review-diagnosis-retain","environment":"离线组件","given":"NC-review-diagnosis-retain:候选预览及有意表达不显示强改","when":"作者页面操作","then":["NC-review-diagnosis-retain:候选预览及有意表达不显示强改"],"contract":"docs/系统架构/新版设计/模块设计/B06-审校修订.md"}
|
||
it("NC-review-diagnosis-retain:候选预览及有意表达不显示强改", () => {
|
||
const result: 诊断结果 = {
|
||
diagnosis_id: "d",
|
||
report: {
|
||
mode: "candidate_preview",
|
||
findings: [
|
||
{
|
||
start: 20,
|
||
end: 25,
|
||
quote: "值得注意的是",
|
||
decision_proposal: "retain",
|
||
},
|
||
],
|
||
executed_rules: ["l002"],
|
||
unreviewed_rules: [{ rule_id: "sem001", reason: "未审" }],
|
||
text_hash: "a",
|
||
calibration: "uncalibrated",
|
||
target: {
|
||
work_id: "w",
|
||
chapter_id: "c",
|
||
revision: 2,
|
||
document_hash: "a",
|
||
branch_id: "main",
|
||
},
|
||
},
|
||
};
|
||
render(<Ui诊断报告 value={result} />);
|
||
expect(screen.getByText(/候选规则预览 · 未标定/)).toBeTruthy();
|
||
expect(screen.getByText("保留")).toBeTruthy();
|
||
expect(screen.queryByText("建议修改")).toBeNull();
|
||
expect(screen.getByText(/语义规则未审 1 条/)).toBeTruthy();
|
||
});
|
||
});
|