fix(前端测试): 修复 npm test 卡死——定时器泄漏 + 去套娃 + 强制退出/超时
- 根因:polling-backoff-recovery 测试断言失败后跳过 loop.dispose(),残留自续期定时器导致 node --test 子进程永不退出 - dead-code-cleanup:移除套娃用例 test_full_vitest_green(再跑一遍全量套件,放大问题),execSync 加 300s 超时;其余静态断言保留 - package.json:node --test --test-force-exit --test-timeout=180000 - CI workflow 前端测试步骤改为 npm test(与 package.json 单一来源) - 修正 3 处过时期望值(轮询退避/品牌 files+taskType/巡店 delete_conditions) - 验证:本地 666 用例全过,19-24s,无残留进程
This commit is contained in:
@@ -132,7 +132,7 @@ test('test_interval_returns_to_base', async () => {
|
||||
}, sink)
|
||||
await tick(10)
|
||||
assert.equal(h.attempts.length, 1, '首轮失败')
|
||||
assert.equal(sink.at(-1)?.ms, TASK_POLL_VISIBLE_INTERVAL_MS, '失败后仍按正常间隔续轮')
|
||||
assert.equal(sink.at(-1)?.ms, getTaskPollBackoffMs(1), '失败后按退避间隔续轮(后端故障时不再高频撞库)')
|
||||
fail = false
|
||||
// 手动触发下一轮自动轮询(模拟定时器到点;先清掉真实定时器避免僵尸 timer)
|
||||
const last = sink.at(-1) as SinkEntry
|
||||
@@ -140,7 +140,7 @@ test('test_interval_returns_to_base', async () => {
|
||||
last.fn()
|
||||
await tick(10)
|
||||
assert.equal(sink.at(-1)?.ms, TASK_POLL_VISIBLE_INTERVAL_MS, '成功后回到正常间隔')
|
||||
assert.equal(sink.some((e) => e.ms < 1000), false, '自动轮询阶段无退避定时器残留')
|
||||
assert.equal(sink.some((e) => e.ms === getTaskPollBackoffMs(0)), false, '自动轮询阶段无 in-flight 重试定时器残留')
|
||||
h.loop.dispose()
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user