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', coverageDirectory: 'coverage',
coverageReporters: ['text', 'lcov'], coverageReporters: ['text', 'lcov'],
verbose: true, 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": { "scripts": {
"build": "rollup -c", "build": "rollup -c",
"dev": "rollup -c -w", "dev": "rollup -c -w",
"test": "jest --coverage", "test": "jest",
"test:coverage": "jest --coverage",
"test:watch": "jest --watch", "test:watch": "jest --watch",
"lint": "eslint \"src/**/*.ts\"", "lint": "eslint \"src/**/*.ts\"",
"lint:fix": "eslint \"src/**/*.ts\" --fix", "lint:fix": "eslint \"src/**/*.ts\" --fix",
+4 -4
View File
@@ -40,25 +40,25 @@ describe('escapeHTML', () => {
describe('debounce', () => { describe('debounce', () => {
test('延迟执行', (done) => { test('延迟执行', (done) => {
let called = 0; let called = 0;
const fn = debounce(() => { called++; }, 50); const fn = debounce(() => { called++; }, 20);
fn(); fn();
expect(called).toBe(0); expect(called).toBe(0);
setTimeout(() => { setTimeout(() => {
expect(called).toBe(1); expect(called).toBe(1);
done(); done();
}, 100); }, 50);
}); });
test('多次调用只执行最后一次', (done) => { test('多次调用只执行最后一次', (done) => {
let result = 0; let result = 0;
const fn = debounce((v: number) => { result = v; }, 50); const fn = debounce((v: number) => { result = v; }, 20);
fn(1); fn(1);
fn(2); fn(2);
fn(3); fn(3);
setTimeout(() => { setTimeout(() => {
expect(result).toBe(3); expect(result).toBe(3);
done(); done();
}, 100); }, 50);
}); });
}); });