mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
test(zone.js): vitest patch for testing (#68395)
Test `fakeAsync` API in Vitest when Zone.js `vitest` patch applied. PR Close #68395
This commit is contained in:
@@ -188,6 +188,7 @@ jobs:
|
||||
- run: pnpm -C packages/zone.js jest:test
|
||||
- run: pnpm -C packages/zone.js jest:nodetest
|
||||
- run: pnpm -C packages/zone.js vitest:test
|
||||
- run: pnpm -C packages/zone.js vitest-globals:test
|
||||
- run: pnpm -C packages/zone.js electrontest
|
||||
- run: pnpm -C packages/zone.js/test/typings test
|
||||
|
||||
|
||||
@@ -174,5 +174,6 @@ jobs:
|
||||
- run: pnpm -C packages/zone.js jest:test
|
||||
- run: pnpm -C packages/zone.js jest:nodetest
|
||||
- run: pnpm -C packages/zone.js vitest:test
|
||||
- run: pnpm -C packages/zone.js vitest-globals:test
|
||||
- run: pnpm -C packages/zone.js electrontest
|
||||
- run: pnpm -C packages/zone.js/test/typings test
|
||||
|
||||
@@ -35,7 +35,8 @@
|
||||
"electrontest": "cd test/extra && node electron.js",
|
||||
"jest:test": "jest --config ./test/jest/jest.config.js",
|
||||
"jest:nodetest": "jest --config ./test/jest/jest.node.config.js",
|
||||
"vitest:test": "vitest ./test/vitest/vitest.spec.js",
|
||||
"vitest:test": "vitest ./test/vitest/*.spec.js --exclude ./test/vitest/*-globals.spec.js",
|
||||
"vitest-globals:test": "vitest ./test/vitest/*-globals.spec.js --globals",
|
||||
"promisefinallytest": "mocha ./test/promise/promise.finally.spec.mjs",
|
||||
"release": "node tools/release.mts"
|
||||
},
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
require('../../../../dist/bin/packages/zone.js/npm_package/bundles/zone.umd.js');
|
||||
require('../../../../dist/bin/packages/zone.js/npm_package/bundles/zone-testing.umd.js');
|
||||
|
||||
// Apply the Vitest patch (i.e. `patchVitest`).
|
||||
require('../../../../dist/bin/packages/zone.js/npm_package/bundles/vitest-patch.umd.js');
|
||||
|
||||
const {fakeAsync, tick} = Zone[Zone.__symbol__('fakeAsyncTest')];
|
||||
|
||||
describe('patchVitest `describe`', () => {
|
||||
test('verify that the patch is installed', () => {
|
||||
expect(globalThis['vitest']['__zone_patch__']).toBe(true);
|
||||
});
|
||||
|
||||
// Expect `beforeEach` to be patched and working with `fakeAsync`.
|
||||
beforeEach(fakeAsync(() => {
|
||||
expect(createAsyncTesterFlag()).toBe(true);
|
||||
}));
|
||||
|
||||
// Expect `afterEach` to be patched and working with `fakeAsync`.
|
||||
afterEach(fakeAsync(() => {
|
||||
expect(createAsyncTesterFlag()).toBe(true);
|
||||
}));
|
||||
|
||||
// Expect `beforeAll` to be patched and working with `fakeAsync`.
|
||||
beforeAll(fakeAsync(() => {
|
||||
expect(createAsyncTesterFlag()).toBe(true);
|
||||
}));
|
||||
|
||||
// Expect `afterAll` to be patched and working with `fakeAsync`.
|
||||
afterAll(fakeAsync(() => {
|
||||
expect(createAsyncTesterFlag()).toBe(true);
|
||||
}));
|
||||
|
||||
it('expect `it` to be patched and working with `fakeAsync`', fakeAsync(() => {
|
||||
expect(createAsyncTesterFlag()).toBe(true);
|
||||
}));
|
||||
|
||||
test('expect `it` to be patched and working with `fakeAsync`', fakeAsync(() => {
|
||||
expect(createAsyncTesterFlag()).toBe(true);
|
||||
}));
|
||||
});
|
||||
|
||||
suite('patchVitest `suite`', () => {
|
||||
it('should work with a patched `suite`', fakeAsync(() => {
|
||||
expect(createAsyncTesterFlag()).toBe(true);
|
||||
}));
|
||||
});
|
||||
|
||||
function createAsyncTesterFlag() {
|
||||
let flag = false;
|
||||
setTimeout(() => {
|
||||
flag = true;
|
||||
}, 100);
|
||||
|
||||
tick(110);
|
||||
|
||||
return flag;
|
||||
}
|
||||
Reference in New Issue
Block a user