1008932-unsupported-file-type-i18n.spec.ts
2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import { test, expect } from "@playwright/test";
/**
* 缺陷 1008932 - 这个提醒,不知道是什么意思
*
* 根因:zh-CN.ts 缺少 KnowledgeBase.unsupportedFileType 翻译 key,
* 上传不支持的文件类型(如 .csv)时,通知显示原始 key 名
* "users_20260319.csv: KnowledgeBase.unsupportedFileType: .csv"
* 而非中文 "不支持的文件类型: .csv"。
*
* 验收标准:
* 1. zh-CN.ts 中 KnowledgeBase.unsupportedFileType 存在且值为中文
* 2. zh-CN.ts 中 KnowledgeBase.fileHasNoExtension 存在且值为中文
*/
test.describe("不支持文件类型提示 i18n 修复 (#1008932)", () => {
test("zh-CN.ts 包含 KnowledgeBase.unsupportedFileType 中文翻译", async ({
page,
}) => {
await page.goto("/#/app/workspace");
await page.waitForLoadState("domcontentloaded");
// 通过注入脚本验证 i18n 翻译值
const translation = await page.evaluate(() => {
const i18n = (window as any).__vue_i18n__;
if (!i18n) return null;
try {
return i18n.global.t("KnowledgeBase.unsupportedFileType");
} catch {
return null;
}
});
// 如果无法通过 vue-i18n 实例验证,则跳过(需登录态)
if (translation === null) {
test.skip(true, "无法访问 vue-i18n 实例,跳过(需登录态)");
return;
}
// 翻译值不应为原始 key
expect(translation).not.toBe("KnowledgeBase.unsupportedFileType");
// 翻译值应包含中文
expect(translation).toMatch(/[\u4e00-\u9fa5]/);
});
test("zh-CN.ts 包含 KnowledgeBase.fileHasNoExtension 中文翻译", async ({
page,
}) => {
await page.goto("/#/app/workspace");
await page.waitForLoadState("domcontentloaded");
const translation = await page.evaluate(() => {
const i18n = (window as any).__vue_i18n__;
if (!i18n) return null;
try {
return i18n.global.t("KnowledgeBase.fileHasNoExtension");
} catch {
return null;
}
});
if (translation === null) {
test.skip(true, "无法访问 vue-i18n 实例,跳过(需登录态)");
return;
}
expect(translation).not.toBe("KnowledgeBase.fileHasNoExtension");
expect(translation).toMatch(/[\u4e00-\u9fa5]/);
});
});