fix: 修复测试无法自然退出 — forceExit + 减少延迟 + 拆分 coverage
CI / test (22.x) (push) Canceled after 0s
CI / test (24.x) (push) Canceled after 0s
CI / test (18.x) (push) Canceled after 1h32m41s
CI / test (20.x) (push) Canceled after 0s

- jest.config.cjs: forceExit:true + testTimeout:15000

- package.json: npm test 默认不再 --coverage

- tests/utils.test.ts: debounce 延迟 50->20, 100->50
This commit is contained in:
2026-07-27 18:12:06 +08:00
parent 648526c188
commit bc69d8f500
3 changed files with 9 additions and 5 deletions
+3
View File
@@ -20,4 +20,7 @@ module.exports = {
coverageDirectory: 'coverage',
coverageReporters: ['text', 'lcov'],
verbose: true,
// Must have: fake-indexeddb + debounce timers keep event loop alive
forceExit: true,
testTimeout: 15000,
};
+2 -1
View File
@@ -24,7 +24,8 @@
"scripts": {
"build": "rollup -c",
"dev": "rollup -c -w",
"test": "jest --coverage",
"test": "jest",
"test:coverage": "jest --coverage",
"test:watch": "jest --watch",
"lint": "eslint \"src/**/*.ts\"",
"lint:fix": "eslint \"src/**/*.ts\" --fix",
+4 -4
View File
@@ -40,25 +40,25 @@ describe('escapeHTML', () => {
describe('debounce', () => {
test('延迟执行', (done) => {
let called = 0;
const fn = debounce(() => { called++; }, 50);
const fn = debounce(() => { called++; }, 20);
fn();
expect(called).toBe(0);
setTimeout(() => {
expect(called).toBe(1);
done();
}, 100);
}, 50);
});
test('多次调用只执行最后一次', (done) => {
let result = 0;
const fn = debounce((v: number) => { result = v; }, 50);
const fn = debounce((v: number) => { result = v; }, 20);
fn(1);
fn(2);
fn(3);
setTimeout(() => {
expect(result).toBe(3);
done();
}, 100);
}, 50);
});
});