项目详情页打标状态轮询改为1秒刷新

This commit is contained in:
wkc
2026-03-19 17:41:18 +08:00
parent f858fbdcbc
commit 99f96e101e
4 changed files with 262 additions and 27 deletions

View File

@@ -0,0 +1,47 @@
const assert = require("assert");
const fs = require("fs");
const path = require("path");
const componentPath = path.resolve(
__dirname,
"../../src/views/ccdiProject/detail.vue"
);
const source = fs.readFileSync(componentPath, "utf8");
assert(
/projectStatusPollingTimer:\s*null/.test(source),
"详情页应声明项目状态轮询定时器"
);
assert(
/projectStatusPollingInterval:\s*1000/.test(source),
"详情页轮询间隔应为 1000ms"
);
assert(
/beforeDestroy\(\)\s*\{[\s\S]*?this\.stopProjectStatusPolling\(\)/.test(source),
"详情页销毁前应停止项目状态轮询"
);
assert(
/syncProjectStatusPolling\(\)\s*\{[\s\S]*?String\(this\.projectInfo\.projectStatus\)\s*===\s*"3"[\s\S]*?this\.startProjectStatusPolling\(\)[\s\S]*?this\.stopProjectStatusPolling\(\)/.test(
source
),
"详情页应根据项目状态启停轮询"
);
assert(
/startProjectStatusPolling\(\)\s*\{[\s\S]*?setInterval\([\s\S]*?this\.pollProjectStatus\(\)[\s\S]*?this\.projectStatusPollingInterval/.test(
source
),
"详情页应按固定间隔轮询项目状态"
);
assert(
/pollProjectStatus\(\)\s*\{[\s\S]*?await this\.fetchProjectDetail\(\{ silent: true \}\)[\s\S]*?if\s*\(String\(this\.projectInfo\.projectStatus\)\s*!==\s*"3"\)\s*\{[\s\S]*?this\.stopProjectStatusPolling\(\)/.test(
source
),
"详情页轮询后应在状态脱离打标中时停止"
);
console.log("project-detail-tagging-polling test passed");