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',
|
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
@@ -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
@@ -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);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user