Merge branch 'dl2b'

Co-Authored-By: Claude Fable 5.1 <[email protected]>

# Conflicts:
#	apps/web/app/components/library/versions.tsx
This commit is contained in:
root committed 2026-09-29 22:15:35 +08:00
commit 606e97815f
11 files changed
+105 -35

No files matched your search

+8
View File
@@ -40,6 +40,14 @@ const REASONS: Record<string, ReasonText> = {
timeout: { text: "操作超时", action: "稍后重试" },
downloader_unavailable: { text: "下载器连不上", action: "在设置 → 下载器里测试连接" },
downloader_error: { text: "下载器报错", action: "查看下载器日志" },
// DL-2b:下载面板整理状态、下载计划里出现的码
blocked: { text: "有冲突要先处理", action: "去待处理" },
blocked_by_conflict: { text: "有冲突,暂不整理" },
transfer_failed: { text: "文件没有整理成功", action: "在整理记录里查看失败的文件" },
main_failed: { text: "主文件整理失败,附属文件一起跳过" },
not_imported_kind: { text: "这类文件不入库" },
target_root_not_managed: { text: "目标目录不是本工具管理的媒体库目录", action: "在设置 → 媒体库与目录里检查" },
download_removed: { text: "下载任务已从下载器删除" },
};
/**
+8
View File
@@ -10,6 +10,14 @@ describe("reasonText(DEAI-2 原因码人话化)", () => {
expect(reasonText("below_min_size")?.text).toContain("最小体积");
});
it("下载面板用到的码(DL-2b):整理失败、冲突、下载被删", () => {
expect(reasonSentence("transfer_failed")).toBe("文件没有整理成功。在整理记录里查看失败的文件");
expect(reasonSentence("blocked")).toBe("有冲突要先处理。去待处理");
expect(reasonText("download_removed")?.text).toBe("下载任务已从下载器删除");
expect(reasonText("target_root_not_managed")?.text).toContain("本工具管理");
for (const c of ["blocked_by_conflict", "main_failed", "not_imported_kind"]) expect(reasonText(c)).not.toBeNull();
});
it("不认识的码返回 null;句子兜底不把码原样给人看", () => {
expect(reasonText("some_new_code")).toBeNull();
expect(reasonSentence("some_new_code")).toBe("处理失败");