fix: 修复测试无法自然退出 — forceExit + 减少延迟 + 拆分 coverage
- 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:
@@ -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
@@ -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
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user