@analogjs/vitest-angular 2.7.0-beta.9 → 2.7.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -128,6 +128,8 @@ The `setupTestBed()` function accepts an optional configuration object with the
128
128
  - `zoneless` (boolean): Whether to use zoneless change detection (default: `true`)
129
129
  - `providers` (`Type<any>[]`): Additional providers to include in the test environment (default: `[]`)
130
130
  - `teardown.destroyAfterEach` (boolean): Whether to destroy the test environment after each test. Set to `false` to keep the component rendered, allowing you to inspect its final state. (default: `true`)
131
+ - `errorOnUnknownElements` (boolean): Whether to throw when unknown elements are present in a component's template. Set to `false` (default) to log the error instead of throwing.
132
+ - `errorOnUnknownProperties` (boolean): Whether to throw when unknown properties are present in a component's template. Set to `false` (default) to log the error instead of throwing.
131
133
 
132
134
  **Example with options:**
133
135
 
@@ -136,6 +138,8 @@ setupTestBed({
136
138
  zoneless: true,
137
139
  providers: [],
138
140
  teardown: { destroyAfterEach: false },
141
+ errorOnUnknownElements: true,
142
+ errorOnUnknownProperties: true,
139
143
  });
140
144
  ```
141
145
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@analogjs/vitest-angular",
3
- "version": "2.7.0-beta.9",
3
+ "version": "2.7.1-beta.1",
4
4
  "description": "Vitest Builder for Angular",
5
5
  "type": "module",
6
6
  "author": "Brandon Roberts <robertsbt@gmail.com>",
@@ -10,6 +10,8 @@ type TestBedSetupOptions = {
10
10
  teardown?: {
11
11
  destroyAfterEach: boolean;
12
12
  };
13
+ errorOnUnknownElements?: boolean;
14
+ errorOnUnknownProperties?: boolean;
13
15
  };
14
- export declare function setupTestBed({ zoneless, providers, browserMode, teardown, }?: TestBedSetupOptions): void;
16
+ export declare function setupTestBed({ zoneless, providers, browserMode, teardown, errorOnUnknownElements, errorOnUnknownProperties, }?: TestBedSetupOptions): void;
15
17
  export {};
package/setup-testbed.js CHANGED
@@ -4,7 +4,7 @@ import { ɵgetCleanupHook as getCleanupHook, getTestBed, } from '@angular/core/t
4
4
  import { BrowserTestingModule, platformBrowserTesting, } from '@angular/platform-browser/testing';
5
5
  import { afterEach, beforeEach } from 'vitest';
6
6
  const ANGULAR_TESTBED_SETUP = Symbol.for('testbed-setup');
7
- export function setupTestBed({ zoneless = true, providers = [], browserMode = false, teardown, } = {}) {
7
+ export function setupTestBed({ zoneless = true, providers = [], browserMode = false, teardown, errorOnUnknownElements, errorOnUnknownProperties, } = {}) {
8
8
  beforeEach(getCleanupHook(false));
9
9
  afterEach(getCleanupHook(true));
10
10
  if (!globalThis[ANGULAR_TESTBED_SETUP]) {
@@ -24,7 +24,9 @@ export function setupTestBed({ zoneless = true, providers = [], browserMode = fa
24
24
  ...{ destroyAfterEach: !browserMode },
25
25
  ...teardown,
26
26
  },
27
+ errorOnUnknownElements,
28
+ errorOnUnknownProperties,
27
29
  });
28
30
  }
29
31
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtdGVzdGJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3ZpdGVzdC1hbmd1bGFyL3NldHVwLXRlc3RiZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxRQUFRLEVBRVIsOEJBQThCLEdBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLElBQUksY0FBYyxFQUNqQyxVQUFVLEdBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHNCQUFzQixHQUN2QixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRS9DLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQWUxRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEVBQzNCLFFBQVEsR0FBRyxJQUFJLEVBQ2YsU0FBUyxHQUFHLEVBQUUsRUFDZCxXQUFXLEdBQUcsS0FBSyxFQUNuQixRQUFRLE1BQ2UsRUFBRTtJQUN6QixVQUFVLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWhDLElBQUksQ0FBRSxVQUFrQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztRQUMvQyxVQUFrQixDQUFDLHFCQUFxQixDQUFDLEdBQUcsSUFBSSxDQUFDO1FBUWxELElBQU0sVUFBVSxHQUFoQixNQUFNLFVBQVU7U0FBRyxDQUFBO1FBQWIsVUFBVTtZQU5mLFFBQVEsQ0FBQztnQkFDUixTQUFTLEVBQUU7b0JBQ1QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdkQsR0FBRyxTQUFTO2lCQUNiO2FBQ0YsQ0FBQztXQUNJLFVBQVUsQ0FBRztRQUVuQixVQUFVLEVBQUUsQ0FBQyxtQkFBbUIsQ0FDOUIsQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLENBQUMsRUFDbEMsc0JBQXNCLEVBQUUsRUFDeEI7WUFDRSxRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxFQUFFLGdCQUFnQixFQUFFLENBQUMsV0FBVyxFQUFFO2dCQUNyQyxHQUFHLFFBQVE7YUFDWjtTQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIE5nTW9kdWxlLFxuICBQcm92aWRlcixcbiAgcHJvdmlkZVpvbmVsZXNzQ2hhbmdlRGV0ZWN0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIMm1Z2V0Q2xlYW51cEhvb2sgYXMgZ2V0Q2xlYW51cEhvb2ssXG4gIGdldFRlc3RCZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQge1xuICBCcm93c2VyVGVzdGluZ01vZHVsZSxcbiAgcGxhdGZvcm1Ccm93c2VyVGVzdGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci90ZXN0aW5nJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCB9IGZyb20gJ3ZpdGVzdCc7XG5cbmNvbnN0IEFOR1VMQVJfVEVTVEJFRF9TRVRVUCA9IFN5bWJvbC5mb3IoJ3Rlc3RiZWQtc2V0dXAnKTtcblxudHlwZSBUZXN0QmVkU2V0dXBPcHRpb25zID0ge1xuICB6b25lbGVzcz86IGJvb2xlYW47XG4gIHByb3ZpZGVycz86IChQcm92aWRlciB8IEVudmlyb25tZW50UHJvdmlkZXJzKVtdO1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGB0ZWFyZG93bi5kZXN0cm95QWZ0ZXJFYWNoYCBpbnN0ZWFkLlxuICAgKiBAc3Vuc2V0IDMuMC4wXG4gICAqL1xuICBicm93c2VyTW9kZT86IGJvb2xlYW47XG4gIHRlYXJkb3duPzoge1xuICAgIGRlc3Ryb3lBZnRlckVhY2g6IGJvb2xlYW47XG4gIH07XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBUZXN0QmVkKHtcbiAgem9uZWxlc3MgPSB0cnVlLFxuICBwcm92aWRlcnMgPSBbXSxcbiAgYnJvd3Nlck1vZGUgPSBmYWxzZSxcbiAgdGVhcmRvd24sXG59OiBUZXN0QmVkU2V0dXBPcHRpb25zID0ge30pIHtcbiAgYmVmb3JlRWFjaChnZXRDbGVhbnVwSG9vayhmYWxzZSkpO1xuICBhZnRlckVhY2goZ2V0Q2xlYW51cEhvb2sodHJ1ZSkpO1xuXG4gIGlmICghKGdsb2JhbFRoaXMgYXMgYW55KVtBTkdVTEFSX1RFU1RCRURfU0VUVVBdKSB7XG4gICAgKGdsb2JhbFRoaXMgYXMgYW55KVtBTkdVTEFSX1RFU1RCRURfU0VUVVBdID0gdHJ1ZTtcblxuICAgIEBOZ01vZHVsZSh7XG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLi4uKHpvbmVsZXNzID8gW3Byb3ZpZGVab25lbGVzc0NoYW5nZURldGVjdGlvbigpXSA6IFtdKSxcbiAgICAgICAgLi4ucHJvdmlkZXJzLFxuICAgICAgXSxcbiAgICB9KVxuICAgIGNsYXNzIFRlc3RNb2R1bGUge31cblxuICAgIGdldFRlc3RCZWQoKS5pbml0VGVzdEVudmlyb25tZW50KFxuICAgICAgW0Jyb3dzZXJUZXN0aW5nTW9kdWxlLCBUZXN0TW9kdWxlXSxcbiAgICAgIHBsYXRmb3JtQnJvd3NlclRlc3RpbmcoKSxcbiAgICAgIHtcbiAgICAgICAgdGVhcmRvd246IHtcbiAgICAgICAgICAuLi57IGRlc3Ryb3lBZnRlckVhY2g6ICFicm93c2VyTW9kZSB9LFxuICAgICAgICAgIC4uLnRlYXJkb3duLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuICB9XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtdGVzdGJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3ZpdGVzdC1hbmd1bGFyL3NldHVwLXRlc3RiZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxRQUFRLEVBRVIsOEJBQThCLEdBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLElBQUksY0FBYyxFQUNqQyxVQUFVLEdBQ1gsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHNCQUFzQixHQUN2QixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRS9DLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQWlCMUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxFQUMzQixRQUFRLEdBQUcsSUFBSSxFQUNmLFNBQVMsR0FBRyxFQUFFLEVBQ2QsV0FBVyxHQUFHLEtBQUssRUFDbkIsUUFBUSxFQUNSLHNCQUFzQixFQUN0Qix3QkFBd0IsTUFDRCxFQUFFO0lBQ3pCLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFaEMsSUFBSSxDQUFFLFVBQWtCLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1FBQy9DLFVBQWtCLENBQUMscUJBQXFCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFRbEQsSUFBTSxVQUFVLEdBQWhCLE1BQU0sVUFBVTtTQUFHLENBQUE7UUFBYixVQUFVO1lBTmYsUUFBUSxDQUFDO2dCQUNSLFNBQVMsRUFBRTtvQkFDVCxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN2RCxHQUFHLFNBQVM7aUJBQ2I7YUFDRixDQUFDO1dBQ0ksVUFBVSxDQUFHO1FBRW5CLFVBQVUsRUFBRSxDQUFDLG1CQUFtQixDQUM5QixDQUFDLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxFQUNsQyxzQkFBc0IsRUFBRSxFQUN4QjtZQUNFLFFBQVEsRUFBRTtnQkFDUixHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3JDLEdBQUcsUUFBUTthQUNaO1lBQ0Qsc0JBQXNCO1lBQ3RCLHdCQUF3QjtTQUN6QixDQUNGLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBOZ01vZHVsZSxcbiAgUHJvdmlkZXIsXG4gIHByb3ZpZGVab25lbGVzc0NoYW5nZURldGVjdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICDJtWdldENsZWFudXBIb29rIGFzIGdldENsZWFudXBIb29rLFxuICBnZXRUZXN0QmVkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHtcbiAgQnJvd3NlclRlc3RpbmdNb2R1bGUsXG4gIHBsYXRmb3JtQnJvd3NlclRlc3RpbmcsXG59IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvdGVzdGluZyc7XG5pbXBvcnQgeyBhZnRlckVhY2gsIGJlZm9yZUVhY2ggfSBmcm9tICd2aXRlc3QnO1xuXG5jb25zdCBBTkdVTEFSX1RFU1RCRURfU0VUVVAgPSBTeW1ib2wuZm9yKCd0ZXN0YmVkLXNldHVwJyk7XG5cbnR5cGUgVGVzdEJlZFNldHVwT3B0aW9ucyA9IHtcbiAgem9uZWxlc3M/OiBib29sZWFuO1xuICBwcm92aWRlcnM/OiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXTtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgdGVhcmRvd24uZGVzdHJveUFmdGVyRWFjaGAgaW5zdGVhZC5cbiAgICogQHN1bnNldCAzLjAuMFxuICAgKi9cbiAgYnJvd3Nlck1vZGU/OiBib29sZWFuO1xuICB0ZWFyZG93bj86IHtcbiAgICBkZXN0cm95QWZ0ZXJFYWNoOiBib29sZWFuO1xuICB9O1xuICBlcnJvck9uVW5rbm93bkVsZW1lbnRzPzogYm9vbGVhbjtcbiAgZXJyb3JPblVua25vd25Qcm9wZXJ0aWVzPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFRlc3RCZWQoe1xuICB6b25lbGVzcyA9IHRydWUsXG4gIHByb3ZpZGVycyA9IFtdLFxuICBicm93c2VyTW9kZSA9IGZhbHNlLFxuICB0ZWFyZG93bixcbiAgZXJyb3JPblVua25vd25FbGVtZW50cyxcbiAgZXJyb3JPblVua25vd25Qcm9wZXJ0aWVzLFxufTogVGVzdEJlZFNldHVwT3B0aW9ucyA9IHt9KSB7XG4gIGJlZm9yZUVhY2goZ2V0Q2xlYW51cEhvb2soZmFsc2UpKTtcbiAgYWZ0ZXJFYWNoKGdldENsZWFudXBIb29rKHRydWUpKTtcblxuICBpZiAoIShnbG9iYWxUaGlzIGFzIGFueSlbQU5HVUxBUl9URVNUQkVEX1NFVFVQXSkge1xuICAgIChnbG9iYWxUaGlzIGFzIGFueSlbQU5HVUxBUl9URVNUQkVEX1NFVFVQXSA9IHRydWU7XG5cbiAgICBATmdNb2R1bGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIC4uLih6b25lbGVzcyA/IFtwcm92aWRlWm9uZWxlc3NDaGFuZ2VEZXRlY3Rpb24oKV0gOiBbXSksXG4gICAgICAgIC4uLnByb3ZpZGVycyxcbiAgICAgIF0sXG4gICAgfSlcbiAgICBjbGFzcyBUZXN0TW9kdWxlIHt9XG5cbiAgICBnZXRUZXN0QmVkKCkuaW5pdFRlc3RFbnZpcm9ubWVudChcbiAgICAgIFtCcm93c2VyVGVzdGluZ01vZHVsZSwgVGVzdE1vZHVsZV0sXG4gICAgICBwbGF0Zm9ybUJyb3dzZXJUZXN0aW5nKCksXG4gICAgICB7XG4gICAgICAgIHRlYXJkb3duOiB7XG4gICAgICAgICAgLi4ueyBkZXN0cm95QWZ0ZXJFYWNoOiAhYnJvd3Nlck1vZGUgfSxcbiAgICAgICAgICAuLi50ZWFyZG93bixcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3JPblVua25vd25FbGVtZW50cyxcbiAgICAgICAgZXJyb3JPblVua25vd25Qcm9wZXJ0aWVzLFxuICAgICAgfSxcbiAgICApO1xuICB9XG59XG4iXX0=
package/setup-vitest.js CHANGED
@@ -11,106 +11,108 @@ const Zone = globalThis['Zone'];
11
11
  if (Zone === undefined) {
12
12
  throw new Error('Missing: Zone (zone.js)');
13
13
  }
14
- if (globalThis['__vitest_zone_patch__'] === true) {
15
- throw new Error("'vitest' has already been patched with 'Zone'.");
16
- }
17
- globalThis['__vitest_zone_patch__'] = true;
18
- const SyncTestZoneSpec = Zone['SyncTestZoneSpec'];
19
- const ProxyZoneSpec = Zone['ProxyZoneSpec'];
20
- if (SyncTestZoneSpec === undefined) {
21
- throw new Error('Missing: SyncTestZoneSpec (zone.js/plugins/sync-test)');
22
- }
23
- if (ProxyZoneSpec === undefined) {
24
- throw new Error('Missing: ProxyZoneSpec (zone.js/plugins/proxy.js)');
25
- }
26
- const env = globalThis;
27
- const ambientZone = Zone.current;
28
- // Create a synchronous-only zone in which to run `describe` blocks in order to
29
- // raise an error if any asynchronous operations are attempted
30
- // inside of a `describe` but outside of a `beforeEach` or `it`.
31
- const syncZone = ambientZone.fork(new SyncTestZoneSpec('vitest.describe'));
32
- function wrapDescribeInZone(describeBody) {
33
- return function (...args) {
34
- return syncZone.run(describeBody, null, args);
35
- };
36
- }
37
- // Create a proxy zone in which to run `test` blocks so that the tests function
38
- // can retroactively install different zones.
39
- const testProxyZone = ambientZone.fork(new ProxyZoneSpec());
40
- function wrapTestInZone(testBody) {
41
- if (testBody === undefined) {
42
- return;
14
+ // Setup files are re-executed for every test file in a reused worker
15
+ // (e.g. isolate: false, or bundled setup entries). The patched functions
16
+ // live on the same globalThis as this flag, so skip instead of re-patching.
17
+ if (globalThis['__vitest_zone_patch__'] !== true) {
18
+ globalThis['__vitest_zone_patch__'] = true;
19
+ const SyncTestZoneSpec = Zone['SyncTestZoneSpec'];
20
+ const ProxyZoneSpec = Zone['ProxyZoneSpec'];
21
+ if (SyncTestZoneSpec === undefined) {
22
+ throw new Error('Missing: SyncTestZoneSpec (zone.js/plugins/sync-test)');
43
23
  }
44
- const wrappedFunc = function () {
45
- return testProxyZone.run(testBody, null, arguments);
46
- };
47
- try {
48
- Object.defineProperty(wrappedFunc, 'length', {
49
- configurable: true,
50
- writable: true,
51
- enumerable: false,
52
- });
53
- wrappedFunc.length = testBody.length;
24
+ if (ProxyZoneSpec === undefined) {
25
+ throw new Error('Missing: ProxyZoneSpec (zone.js/plugins/proxy.js)');
54
26
  }
55
- catch (e) {
56
- return testBody.length === 0
57
- ? () => testProxyZone.run(testBody, null)
58
- : (done) => testProxyZone.run(testBody, null, [done]);
59
- }
60
- return wrappedFunc;
61
- }
62
- /**
63
- * bind describe method to wrap describe.each function
64
- */
65
- const bindDescribe = (self, originalVitestFn) => function (...eachArgs) {
66
- return function (...args) {
67
- args[1] = wrapDescribeInZone(args[1]);
68
- // @ts-ignore
69
- return originalVitestFn.apply(self, eachArgs).apply(self, args);
70
- };
71
- };
72
- /**
73
- * bind test method to wrap test.each function
74
- */
75
- const bindTest = (self, originalVitestFn) => function (...eachArgs) {
76
- return function (...args) {
77
- args[1] = wrapTestInZone(args[1]);
78
- // @ts-ignore
79
- return originalVitestFn.apply(self, eachArgs).apply(self, args);
27
+ const env = globalThis;
28
+ const ambientZone = Zone.current;
29
+ // Create a synchronous-only zone in which to run `describe` blocks in order to
30
+ // raise an error if any asynchronous operations are attempted
31
+ // inside of a `describe` but outside of a `beforeEach` or `it`.
32
+ const syncZone = ambientZone.fork(new SyncTestZoneSpec('vitest.describe'));
33
+ const wrapDescribeInZone = function (describeBody) {
34
+ return function (...args) {
35
+ return syncZone.run(describeBody, null, args);
36
+ };
80
37
  };
81
- };
82
- ['describe'].forEach((methodName) => {
83
- const originalvitestFn = env[methodName];
84
- env[methodName] = function (...args) {
85
- args[1] = wrapDescribeInZone(args[1]);
86
- return originalvitestFn.apply(this, args);
38
+ // Create a proxy zone in which to run `test` blocks so that the tests function
39
+ // can retroactively install different zones.
40
+ const testProxyZone = ambientZone.fork(new ProxyZoneSpec());
41
+ const wrapTestInZone = function (testBody) {
42
+ if (testBody === undefined) {
43
+ return;
44
+ }
45
+ const wrappedFunc = function () {
46
+ return testProxyZone.run(testBody, null, arguments);
47
+ };
48
+ try {
49
+ Object.defineProperty(wrappedFunc, 'length', {
50
+ configurable: true,
51
+ writable: true,
52
+ enumerable: false,
53
+ });
54
+ wrappedFunc.length = testBody.length;
55
+ }
56
+ catch (e) {
57
+ return testBody.length === 0
58
+ ? () => testProxyZone.run(testBody, null)
59
+ : (done) => testProxyZone.run(testBody, null, [done]);
60
+ }
61
+ return wrappedFunc;
87
62
  };
88
- env[methodName].each = bindDescribe(originalvitestFn, originalvitestFn.each);
89
- if (methodName === 'describe') {
90
- env[methodName].only = bindDescribe(originalvitestFn, originalvitestFn.only);
91
- env[methodName].skip = bindDescribe(originalvitestFn, originalvitestFn.skip);
92
- }
93
- });
94
- ['test', 'it'].forEach((methodName) => {
95
- const originalvitestFn = env[methodName];
96
- env[methodName] = function (...args) {
97
- args[1] = wrapTestInZone(args[1]);
98
- return originalvitestFn.apply(this, args);
63
+ /**
64
+ * bind describe method to wrap describe.each function
65
+ */
66
+ const bindDescribe = (self, originalVitestFn) => function (...eachArgs) {
67
+ return function (...args) {
68
+ args[1] = wrapDescribeInZone(args[1]);
69
+ // @ts-ignore
70
+ return originalVitestFn.apply(self, eachArgs).apply(self, args);
71
+ };
99
72
  };
100
- env[methodName].each = bindTest(originalvitestFn, originalvitestFn.each);
101
- env[methodName].only = bindTest(originalvitestFn, originalvitestFn.only);
102
- env[methodName].skip = bindTest(originalvitestFn, originalvitestFn.skip);
103
- if (methodName === 'test' || methodName === 'it') {
104
- env[methodName].todo = function (...args) {
105
- return originalvitestFn.todo.apply(this, args);
73
+ /**
74
+ * bind test method to wrap test.each function
75
+ */
76
+ const bindTest = (self, originalVitestFn) => function (...eachArgs) {
77
+ return function (...args) {
78
+ args[1] = wrapTestInZone(args[1]);
79
+ // @ts-ignore
80
+ return originalVitestFn.apply(self, eachArgs).apply(self, args);
106
81
  };
107
- }
108
- });
109
- ['beforeEach', 'afterEach', 'beforeAll', 'afterAll'].forEach((methodName) => {
110
- const originalvitestFn = env[methodName];
111
- env[methodName] = function (...args) {
112
- args[0] = wrapTestInZone(args[0]);
113
- return originalvitestFn.apply(this, args);
114
82
  };
115
- });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtdml0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvdml0ZXN0LWFuZ3VsYXIvc2V0dXAtdml0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLGlCQUFpQixDQUFDO0FBRXpCOzs7R0FHRztBQUNILGlCQUFpQjtBQUNqQixNQUFNLElBQUksR0FBSSxVQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXpDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO0lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsSUFBSyxVQUFrQixDQUFDLHVCQUF1QixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFQSxVQUFrQixDQUFDLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3BELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDbEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRTVDLElBQUksZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7SUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0FBQzNFLENBQUM7QUFDRCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVELE1BQU0sR0FBRyxHQUFHLFVBQWlCLENBQUM7QUFDOUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUVqQywrRUFB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R0FBRyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekUsSUFBSSxVQUFVLEtBQUssTUFBTSxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqRCxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxHQUFHLFVBQVUsR0FBRyxJQUFTO1lBQzNDLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUgsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtJQUMxRSxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV6QyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxHQUFHLElBQVc7UUFDeEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQyxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3pvbmUuanMnO1xuaW1wb3J0ICd6b25lLmpzL3BsdWdpbnMvc3luYy10ZXN0JztcbmltcG9ydCAnem9uZS5qcy9wbHVnaW5zL3Byb3h5JztcbmltcG9ydCAnem9uZS5qcy90ZXN0aW5nJztcblxuLyoqXG4gKiBQYXRjaCBWaXRlc3QncyBkZXNjcmliZS90ZXN0L2JlZm9yZUVhY2gvYWZ0ZXJFYWNoIGZ1bmN0aW9ucyBzbyB0ZXN0IGNvZGVcbiAqIGFsd2F5cyBydW5zIGluIGEgdGVzdFpvbmUgKFByb3h5Wm9uZSkuXG4gKi9cbi8qIGdsb2JhbCBab25lICovXG5jb25zdCBab25lID0gKGdsb2JhbFRoaXMgYXMgYW55KVsnWm9uZSddO1xuXG5pZiAoWm9uZSA9PT0gdW5kZWZpbmVkKSB7XG4gIHRocm93IG5ldyBFcnJvcignTWlzc2luZzogWm9uZSAoem9uZS5qcyknKTtcbn1cblxuaWYgKChnbG9iYWxUaGlzIGFzIGFueSlbJ19fdml0ZXN0X3pvbmVfcGF0Y2hfXyddID09PSB0cnVlKSB7XG4gIHRocm93IG5ldyBFcnJvcihcIid2aXRlc3QnIGhhcyBhbHJlYWR5IGJlZW4gcGF0Y2hlZCB3aXRoICdab25lJy5cIik7XG59XG5cbihnbG9iYWxUaGlzIGFzIGFueSlbJ19fdml0ZXN0X3pvbmVfcGF0Y2hfXyddID0gdHJ1ZTtcbmNvbnN0IFN5bmNUZXN0Wm9uZVNwZWMgPSBab25lWydTeW5jVGVzdFpvbmVTcGVjJ107XG5jb25zdCBQcm94eVpvbmVTcGVjID0gWm9uZVsnUHJveHlab25lU3BlYyddO1xuXG5pZiAoU3luY1Rlc3Rab25lU3BlYyA9PT0gdW5kZWZpbmVkKSB7XG4gIHRocm93IG5ldyBFcnJvcignTWlzc2luZzogU3luY1Rlc3Rab25lU3BlYyAoem9uZS5qcy9wbHVnaW5zL3N5bmMtdGVzdCknKTtcbn1cbmlmIChQcm94eVpvbmVTcGVjID09PSB1bmRlZmluZWQpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nOiBQcm94eVpvbmVTcGVjICh6b25lLmpzL3BsdWdpbnMvcHJveHkuanMpJyk7XG59XG5cbmNvbnN0IGVudiA9IGdsb2JhbFRoaXMgYXMgYW55O1xuY29uc3QgYW1iaWVudFpvbmUgPSBab25lLmN1cnJlbnQ7XG5cbi8vIENyZWF0ZSBhIHN5bmNocm9ub3VzLW9ubHkgem9uZSBpbiB3aGljaCB0byBydW4gYGRlc2NyaWJlYCBibG9ja3MgaW4gb3JkZXIgdG9cbi8vIHJhaXNlIGFuIGVycm9yIGlmIGFueSBhc3luY2hyb25vdXMgb3BlcmF0aW9ucyBhcmUgYXR0ZW1wdGVkXG4vLyBpbnNpZGUgb2YgYSBgZGVzY3JpYmVgIGJ1dCBvdXRzaWRlIG9mIGEgYGJlZm9yZUVhY2hgIG9yIGBpdGAuXG5jb25zdCBzeW5jWm9uZSA9IGFtYmllbnRab25lLmZvcmsobmV3IFN5bmNUZXN0Wm9uZVNwZWMoJ3ZpdGVzdC5kZXNjcmliZScpKTtcbmZ1bmN0aW9uIHdyYXBEZXNjcmliZUluWm9uZShkZXNjcmliZUJvZHk6IGFueSkge1xuICByZXR1cm4gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueSkge1xuICAgIHJldHVybiBzeW5jWm9uZS5ydW4oZGVzY3JpYmVCb2R5LCBudWxsLCBhcmdzKTtcbiAgfTtcbn1cblxuLy8gQ3JlYXRlIGEgcHJveHkgem9uZSBpbiB3aGljaCB0byBydW4gYHRlc3RgIGJsb2NrcyBzbyB0aGF0IHRoZSB0ZXN0cyBmdW5jdGlvblxuLy8gY2FuIHJldHJvYWN0aXZlbHkgaW5zdGFsbCBkaWZmZXJlbnQgem9uZXMuXG5jb25zdCB0ZXN0UHJveHlab25lID0gYW1iaWVudFpvbmUuZm9yayhuZXcgUHJveHlab25lU3BlYygpKTtcbmZ1bmN0aW9uIHdyYXBUZXN0SW5ab25lKHRlc3RCb2R5OiBzdHJpbmcgfCBhbnlbXSB8IHVuZGVmaW5lZCkge1xuICBpZiAodGVzdEJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHdyYXBwZWRGdW5jID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0ZXN0UHJveHlab25lLnJ1bih0ZXN0Qm9keSwgbnVsbCwgYXJndW1lbnRzKTtcbiAgfTtcbiAgdHJ5IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod3JhcHBlZEZ1bmMsICdsZW5ndGgnLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIH0pO1xuICAgIHdyYXBwZWRGdW5jLmxlbmd0aCA9IHRlc3RCb2R5Lmxlbmd0aDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0ZXN0Qm9keS5sZW5ndGggPT09IDBcbiAgICAgID8gKCkgPT4gdGVzdFByb3h5Wm9uZS5ydW4odGVzdEJvZHksIG51bGwpXG4gICAgICA6IChkb25lOiBhbnkpID0+IHRlc3RQcm94eVpvbmUucnVuKHRlc3RCb2R5LCBudWxsLCBbZG9uZV0pO1xuICB9XG5cbiAgcmV0dXJuIHdyYXBwZWRGdW5jO1xufVxuXG4vKipcbiAqIGJpbmQgZGVzY3JpYmUgbWV0aG9kIHRvIHdyYXAgZGVzY3JpYmUuZWFjaCBmdW5jdGlvblxuICovXG5jb25zdCBiaW5kRGVzY3JpYmUgPSAoXG4gIHNlbGY6IGFueSxcbiAgb3JpZ2luYWxWaXRlc3RGbjoge1xuICAgIGFwcGx5OiAoXG4gICAgICBhcmcwOiBhbnksXG4gICAgICBhcmcxOiBhbnlbXSxcbiAgICApID0+IHtcbiAgICAgICgpOiBhbnk7XG4gICAgICBuZXcgKCk6IGFueTtcbiAgICAgIGFwcGx5OiB7IChhcmcwOiBhbnksIGFyZzE6IGFueVtdKTogYW55OyBuZXcgKCk6IGFueSB9O1xuICAgIH07XG4gIH0sXG4pID0+XG4gIGZ1bmN0aW9uICguLi5lYWNoQXJnczogYW55KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgYXJnc1sxXSA9IHdyYXBEZXNjcmliZUluWm9uZShhcmdzWzFdKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuIG9yaWdpbmFsVml0ZXN0Rm4uYXBwbHkoc2VsZiwgZWFjaEFyZ3MpLmFwcGx5KHNlbGYsIGFyZ3MpO1xuICAgIH07XG4gIH07XG5cbi8qKlxuICogYmluZCB0ZXN0IG1ldGhvZCB0byB3cmFwIHRlc3QuZWFjaCBmdW5jdGlvblxuICovXG5jb25zdCBiaW5kVGVzdCA9IChcbiAgc2VsZjogYW55LFxuICBvcmlnaW5hbFZpdGVzdEZuOiB7XG4gICAgYXBwbHk6IChcbiAgICAgIGFyZzA6IGFueSxcbiAgICAgIGFyZzE6IGFueVtdLFxuICAgICkgPT4ge1xuICAgICAgKCk6IGFueTtcbiAgICAgIG5ldyAoKTogYW55O1xuICAgICAgYXBwbHk6IHsgKGFyZzA6IGFueSwgYXJnMTogYW55W10pOiBhbnk7IG5ldyAoKTogYW55IH07XG4gICAgfTtcbiAgfSxcbikgPT5cbiAgZnVuY3Rpb24gKC4uLmVhY2hBcmdzOiBhbnkpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBhcmdzWzFdID0gd3JhcFRlc3RJblpvbmUoYXJnc1sxXSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBvcmlnaW5hbFZpdGVzdEZuLmFwcGx5KHNlbGYsIGVhY2hBcmdzKS5hcHBseShzZWxmLCBhcmdzKTtcbiAgICB9O1xuICB9O1xuXG5bJ2Rlc2NyaWJlJ10uZm9yRWFjaCgobWV0aG9kTmFtZSkgPT4ge1xuICBjb25zdCBvcmlnaW5hbHZpdGVzdEZuID0gZW52W21ldGhvZE5hbWVdO1xuICBlbnZbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICBhcmdzWzFdID0gd3JhcERlc2NyaWJlSW5ab25lKGFyZ3NbMV0pO1xuXG4gICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4uYXBwbHkodGhpcywgYXJncyk7XG4gIH07XG4gIGVudlttZXRob2ROYW1lXS5lYWNoID0gYmluZERlc2NyaWJlKG9yaWdpbmFsdml0ZXN0Rm4sIG9yaWdpbmFsdml0ZXN0Rm4uZWFjaCk7XG4gIGlmIChtZXRob2ROYW1lID09PSAnZGVzY3JpYmUnKSB7XG4gICAgZW52W21ldGhvZE5hbWVdLm9ubHkgPSBiaW5kRGVzY3JpYmUoXG4gICAgICBvcmlnaW5hbHZpdGVzdEZuLFxuICAgICAgb3JpZ2luYWx2aXRlc3RGbi5vbmx5LFxuICAgICk7XG4gICAgZW52W21ldGhvZE5hbWVdLnNraXAgPSBiaW5kRGVzY3JpYmUoXG4gICAgICBvcmlnaW5hbHZpdGVzdEZuLFxuICAgICAgb3JpZ2luYWx2aXRlc3RGbi5za2lwLFxuICAgICk7XG4gIH1cbn0pO1xuXG5bJ3Rlc3QnLCAnaXQnXS5mb3JFYWNoKChtZXRob2ROYW1lKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsdml0ZXN0Rm4gPSBlbnZbbWV0aG9kTmFtZV07XG4gIGVudlttZXRob2ROYW1lXSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIGFyZ3NbMV0gPSB3cmFwVGVzdEluWm9uZShhcmdzWzFdKTtcblxuICAgIHJldHVybiBvcmlnaW5hbHZpdGVzdEZuLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICB9O1xuICBlbnZbbWV0aG9kTmFtZV0uZWFjaCA9IGJpbmRUZXN0KG9yaWdpbmFsdml0ZXN0Rm4sIG9yaWdpbmFsdml0ZXN0Rm4uZWFjaCk7XG4gIGVudlttZXRob2ROYW1lXS5vbmx5ID0gYmluZFRlc3Qob3JpZ2luYWx2aXRlc3RGbiwgb3JpZ2luYWx2aXRlc3RGbi5vbmx5KTtcbiAgZW52W21ldGhvZE5hbWVdLnNraXAgPSBiaW5kVGVzdChvcmlnaW5hbHZpdGVzdEZuLCBvcmlnaW5hbHZpdGVzdEZuLnNraXApO1xuXG4gIGlmIChtZXRob2ROYW1lID09PSAndGVzdCcgfHwgbWV0aG9kTmFtZSA9PT0gJ2l0Jykge1xuICAgIGVudlttZXRob2ROYW1lXS50b2RvID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueSkge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4udG9kby5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuICB9XG59KTtcblxuWydiZWZvcmVFYWNoJywgJ2FmdGVyRWFjaCcsICdiZWZvcmVBbGwnLCAnYWZ0ZXJBbGwnXS5mb3JFYWNoKChtZXRob2ROYW1lKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsdml0ZXN0Rm4gPSBlbnZbbWV0aG9kTmFtZV07XG5cbiAgZW52W21ldGhvZE5hbWVdID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgYXJnc1swXSA9IHdyYXBUZXN0SW5ab25lKGFyZ3NbMF0pO1xuXG4gICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4uYXBwbHkodGhpcywgYXJncyk7XG4gIH07XG59KTtcbiJdfQ==
83
+ ['describe'].forEach((methodName) => {
84
+ const originalvitestFn = env[methodName];
85
+ env[methodName] = function (...args) {
86
+ args[1] = wrapDescribeInZone(args[1]);
87
+ return originalvitestFn.apply(this, args);
88
+ };
89
+ env[methodName].each = bindDescribe(originalvitestFn, originalvitestFn.each);
90
+ if (methodName === 'describe') {
91
+ env[methodName].only = bindDescribe(originalvitestFn, originalvitestFn.only);
92
+ env[methodName].skip = bindDescribe(originalvitestFn, originalvitestFn.skip);
93
+ }
94
+ });
95
+ ['test', 'it'].forEach((methodName) => {
96
+ const originalvitestFn = env[methodName];
97
+ env[methodName] = function (...args) {
98
+ args[1] = wrapTestInZone(args[1]);
99
+ return originalvitestFn.apply(this, args);
100
+ };
101
+ env[methodName].each = bindTest(originalvitestFn, originalvitestFn.each);
102
+ env[methodName].only = bindTest(originalvitestFn, originalvitestFn.only);
103
+ env[methodName].skip = bindTest(originalvitestFn, originalvitestFn.skip);
104
+ if (methodName === 'test' || methodName === 'it') {
105
+ env[methodName].todo = function (...args) {
106
+ return originalvitestFn.todo.apply(this, args);
107
+ };
108
+ }
109
+ });
110
+ ['beforeEach', 'afterEach', 'beforeAll', 'afterAll'].forEach((methodName) => {
111
+ const originalvitestFn = env[methodName];
112
+ env[methodName] = function (...args) {
113
+ args[0] = wrapTestInZone(args[0]);
114
+ return originalvitestFn.apply(this, args);
115
+ };
116
+ });
117
+ }
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtdml0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvdml0ZXN0LWFuZ3VsYXIvc2V0dXAtdml0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLGlCQUFpQixDQUFDO0FBRXpCOzs7R0FHRztBQUNILGlCQUFpQjtBQUNqQixNQUFNLElBQUksR0FBSSxVQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRXpDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO0lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQscUVBQXFFO0FBQ3JFLHlFQUF5RTtBQUN6RSw0RUFBNEU7QUFDNUUsSUFBSyxVQUFrQixDQUFDLHVCQUF1QixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDekQsVUFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNwRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUU1QyxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBQ0QsSUFBSSxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxVQUFpQixDQUFDO0lBQzlCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFFakMsK0VBQStFO0lBQy9FLDhEQUE4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QUMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpFLElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDakQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksR0FBRyxVQUFVLEdBQUcsSUFBUztnQkFDM0MsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQzFFLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxVQUFVLEdBQUcsSUFBVztZQUN4QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWxDLE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3pvbmUuanMnO1xuaW1wb3J0ICd6b25lLmpzL3BsdWdpbnMvc3luYy10ZXN0JztcbmltcG9ydCAnem9uZS5qcy9wbHVnaW5zL3Byb3h5JztcbmltcG9ydCAnem9uZS5qcy90ZXN0aW5nJztcblxuLyoqXG4gKiBQYXRjaCBWaXRlc3QncyBkZXNjcmliZS90ZXN0L2JlZm9yZUVhY2gvYWZ0ZXJFYWNoIGZ1bmN0aW9ucyBzbyB0ZXN0IGNvZGVcbiAqIGFsd2F5cyBydW5zIGluIGEgdGVzdFpvbmUgKFByb3h5Wm9uZSkuXG4gKi9cbi8qIGdsb2JhbCBab25lICovXG5jb25zdCBab25lID0gKGdsb2JhbFRoaXMgYXMgYW55KVsnWm9uZSddO1xuXG5pZiAoWm9uZSA9PT0gdW5kZWZpbmVkKSB7XG4gIHRocm93IG5ldyBFcnJvcignTWlzc2luZzogWm9uZSAoem9uZS5qcyknKTtcbn1cblxuLy8gU2V0dXAgZmlsZXMgYXJlIHJlLWV4ZWN1dGVkIGZvciBldmVyeSB0ZXN0IGZpbGUgaW4gYSByZXVzZWQgd29ya2VyXG4vLyAoZS5nLiBpc29sYXRlOiBmYWxzZSwgb3IgYnVuZGxlZCBzZXR1cCBlbnRyaWVzKS4gVGhlIHBhdGNoZWQgZnVuY3Rpb25zXG4vLyBsaXZlIG9uIHRoZSBzYW1lIGdsb2JhbFRoaXMgYXMgdGhpcyBmbGFnLCBzbyBza2lwIGluc3RlYWQgb2YgcmUtcGF0Y2hpbmcuXG5pZiAoKGdsb2JhbFRoaXMgYXMgYW55KVsnX192aXRlc3Rfem9uZV9wYXRjaF9fJ10gIT09IHRydWUpIHtcbiAgKGdsb2JhbFRoaXMgYXMgYW55KVsnX192aXRlc3Rfem9uZV9wYXRjaF9fJ10gPSB0cnVlO1xuICBjb25zdCBTeW5jVGVzdFpvbmVTcGVjID0gWm9uZVsnU3luY1Rlc3Rab25lU3BlYyddO1xuICBjb25zdCBQcm94eVpvbmVTcGVjID0gWm9uZVsnUHJveHlab25lU3BlYyddO1xuXG4gIGlmIChTeW5jVGVzdFpvbmVTcGVjID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmc6IFN5bmNUZXN0Wm9uZVNwZWMgKHpvbmUuanMvcGx1Z2lucy9zeW5jLXRlc3QpJyk7XG4gIH1cbiAgaWYgKFByb3h5Wm9uZVNwZWMgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZzogUHJveHlab25lU3BlYyAoem9uZS5qcy9wbHVnaW5zL3Byb3h5LmpzKScpO1xuICB9XG5cbiAgY29uc3QgZW52ID0gZ2xvYmFsVGhpcyBhcyBhbnk7XG4gIGNvbnN0IGFtYmllbnRab25lID0gWm9uZS5jdXJyZW50O1xuXG4gIC8vIENyZWF0ZSBhIHN5bmNocm9ub3VzLW9ubHkgem9uZSBpbiB3aGljaCB0byBydW4gYGRlc2NyaWJlYCBibG9ja3MgaW4gb3JkZXIgdG9cbiAgLy8gcmFpc2UgYW4gZXJyb3IgaWYgYW55IGFzeW5jaHJvbm91cyBvcGVyYXRpb25zIGFyZSBhdHRlbXB0ZWRcbiAgLy8gaW5zaWRlIG9mIGEgYGRlc2NyaWJlYCBidXQgb3V0c2lkZSBvZiBhIGBiZWZvcmVFYWNoYCBvciBgaXRgLlxuICBjb25zdCBzeW5jWm9uZSA9IGFtYmllbnRab25lLmZvcmsobmV3IFN5bmNUZXN0Wm9uZVNwZWMoJ3ZpdGVzdC5kZXNjcmliZScpKTtcbiAgY29uc3Qgd3JhcERlc2NyaWJlSW5ab25lID0gZnVuY3Rpb24gKGRlc2NyaWJlQm9keTogYW55KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnkpIHtcbiAgICAgIHJldHVybiBzeW5jWm9uZS5ydW4oZGVzY3JpYmVCb2R5LCBudWxsLCBhcmdzKTtcbiAgICB9O1xuICB9O1xuXG4gIC8vIENyZWF0ZSBhIHByb3h5IHpvbmUgaW4gd2hpY2ggdG8gcnVuIGB0ZXN0YCBibG9ja3Mgc28gdGhhdCB0aGUgdGVzdHMgZnVuY3Rpb25cbiAgLy8gY2FuIHJldHJvYWN0aXZlbHkgaW5zdGFsbCBkaWZmZXJlbnQgem9uZXMuXG4gIGNvbnN0IHRlc3RQcm94eVpvbmUgPSBhbWJpZW50Wm9uZS5mb3JrKG5ldyBQcm94eVpvbmVTcGVjKCkpO1xuICBjb25zdCB3cmFwVGVzdEluWm9uZSA9IGZ1bmN0aW9uICh0ZXN0Qm9keTogc3RyaW5nIHwgYW55W10gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodGVzdEJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHdyYXBwZWRGdW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHRlc3RQcm94eVpvbmUucnVuKHRlc3RCb2R5LCBudWxsLCBhcmd1bWVudHMpO1xuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVkRnVuYywgJ2xlbmd0aCcsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB9KTtcbiAgICAgIHdyYXBwZWRGdW5jLmxlbmd0aCA9IHRlc3RCb2R5Lmxlbmd0aDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdGVzdEJvZHkubGVuZ3RoID09PSAwXG4gICAgICAgID8gKCkgPT4gdGVzdFByb3h5Wm9uZS5ydW4odGVzdEJvZHksIG51bGwpXG4gICAgICAgIDogKGRvbmU6IGFueSkgPT4gdGVzdFByb3h5Wm9uZS5ydW4odGVzdEJvZHksIG51bGwsIFtkb25lXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdyYXBwZWRGdW5jO1xuICB9O1xuXG4gIC8qKlxuICAgKiBiaW5kIGRlc2NyaWJlIG1ldGhvZCB0byB3cmFwIGRlc2NyaWJlLmVhY2ggZnVuY3Rpb25cbiAgICovXG4gIGNvbnN0IGJpbmREZXNjcmliZSA9IChcbiAgICBzZWxmOiBhbnksXG4gICAgb3JpZ2luYWxWaXRlc3RGbjoge1xuICAgICAgYXBwbHk6IChcbiAgICAgICAgYXJnMDogYW55LFxuICAgICAgICBhcmcxOiBhbnlbXSxcbiAgICAgICkgPT4ge1xuICAgICAgICAoKTogYW55O1xuICAgICAgICBuZXcgKCk6IGFueTtcbiAgICAgICAgYXBwbHk6IHsgKGFyZzA6IGFueSwgYXJnMTogYW55W10pOiBhbnk7IG5ldyAoKTogYW55IH07XG4gICAgICB9O1xuICAgIH0sXG4gICkgPT5cbiAgICBmdW5jdGlvbiAoLi4uZWFjaEFyZ3M6IGFueSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBhcmdzWzFdID0gd3JhcERlc2NyaWJlSW5ab25lKGFyZ3NbMV0pO1xuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsVml0ZXN0Rm4uYXBwbHkoc2VsZiwgZWFjaEFyZ3MpLmFwcGx5KHNlbGYsIGFyZ3MpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gIC8qKlxuICAgKiBiaW5kIHRlc3QgbWV0aG9kIHRvIHdyYXAgdGVzdC5lYWNoIGZ1bmN0aW9uXG4gICAqL1xuICBjb25zdCBiaW5kVGVzdCA9IChcbiAgICBzZWxmOiBhbnksXG4gICAgb3JpZ2luYWxWaXRlc3RGbjoge1xuICAgICAgYXBwbHk6IChcbiAgICAgICAgYXJnMDogYW55LFxuICAgICAgICBhcmcxOiBhbnlbXSxcbiAgICAgICkgPT4ge1xuICAgICAgICAoKTogYW55O1xuICAgICAgICBuZXcgKCk6IGFueTtcbiAgICAgICAgYXBwbHk6IHsgKGFyZzA6IGFueSwgYXJnMTogYW55W10pOiBhbnk7IG5ldyAoKTogYW55IH07XG4gICAgICB9O1xuICAgIH0sXG4gICkgPT5cbiAgICBmdW5jdGlvbiAoLi4uZWFjaEFyZ3M6IGFueSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBhcmdzWzFdID0gd3JhcFRlc3RJblpvbmUoYXJnc1sxXSk7XG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gb3JpZ2luYWxWaXRlc3RGbi5hcHBseShzZWxmLCBlYWNoQXJncykuYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgWydkZXNjcmliZSddLmZvckVhY2goKG1ldGhvZE5hbWUpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbHZpdGVzdEZuID0gZW52W21ldGhvZE5hbWVdO1xuICAgIGVudlttZXRob2ROYW1lXSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgYXJnc1sxXSA9IHdyYXBEZXNjcmliZUluWm9uZShhcmdzWzFdKTtcblxuICAgICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4uYXBwbHkodGhpcywgYXJncyk7XG4gICAgfTtcbiAgICBlbnZbbWV0aG9kTmFtZV0uZWFjaCA9IGJpbmREZXNjcmliZShcbiAgICAgIG9yaWdpbmFsdml0ZXN0Rm4sXG4gICAgICBvcmlnaW5hbHZpdGVzdEZuLmVhY2gsXG4gICAgKTtcbiAgICBpZiAobWV0aG9kTmFtZSA9PT0gJ2Rlc2NyaWJlJykge1xuICAgICAgZW52W21ldGhvZE5hbWVdLm9ubHkgPSBiaW5kRGVzY3JpYmUoXG4gICAgICAgIG9yaWdpbmFsdml0ZXN0Rm4sXG4gICAgICAgIG9yaWdpbmFsdml0ZXN0Rm4ub25seSxcbiAgICAgICk7XG4gICAgICBlbnZbbWV0aG9kTmFtZV0uc2tpcCA9IGJpbmREZXNjcmliZShcbiAgICAgICAgb3JpZ2luYWx2aXRlc3RGbixcbiAgICAgICAgb3JpZ2luYWx2aXRlc3RGbi5za2lwLFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIFsndGVzdCcsICdpdCddLmZvckVhY2goKG1ldGhvZE5hbWUpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbHZpdGVzdEZuID0gZW52W21ldGhvZE5hbWVdO1xuICAgIGVudlttZXRob2ROYW1lXSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgYXJnc1sxXSA9IHdyYXBUZXN0SW5ab25lKGFyZ3NbMV0pO1xuXG4gICAgICByZXR1cm4gb3JpZ2luYWx2aXRlc3RGbi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuICAgIGVudlttZXRob2ROYW1lXS5lYWNoID0gYmluZFRlc3Qob3JpZ2luYWx2aXRlc3RGbiwgb3JpZ2luYWx2aXRlc3RGbi5lYWNoKTtcbiAgICBlbnZbbWV0aG9kTmFtZV0ub25seSA9IGJpbmRUZXN0KG9yaWdpbmFsdml0ZXN0Rm4sIG9yaWdpbmFsdml0ZXN0Rm4ub25seSk7XG4gICAgZW52W21ldGhvZE5hbWVdLnNraXAgPSBiaW5kVGVzdChvcmlnaW5hbHZpdGVzdEZuLCBvcmlnaW5hbHZpdGVzdEZuLnNraXApO1xuXG4gICAgaWYgKG1ldGhvZE5hbWUgPT09ICd0ZXN0JyB8fCBtZXRob2ROYW1lID09PSAnaXQnKSB7XG4gICAgICBlbnZbbWV0aG9kTmFtZV0udG9kbyA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4udG9kby5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcblxuICBbJ2JlZm9yZUVhY2gnLCAnYWZ0ZXJFYWNoJywgJ2JlZm9yZUFsbCcsICdhZnRlckFsbCddLmZvckVhY2goKG1ldGhvZE5hbWUpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbHZpdGVzdEZuID0gZW52W21ldGhvZE5hbWVdO1xuXG4gICAgZW52W21ldGhvZE5hbWVdID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBhcmdzWzBdID0gd3JhcFRlc3RJblpvbmUoYXJnc1swXSk7XG5cbiAgICAgIHJldHVybiBvcmlnaW5hbHZpdGVzdEZuLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH07XG4gIH0pO1xufVxuIl19
package/setup-zone.js CHANGED
@@ -12,106 +12,108 @@ const Zone = globalThis['Zone'];
12
12
  if (Zone === undefined) {
13
13
  throw new Error('Missing: Zone (zone.js)');
14
14
  }
15
- if (globalThis['__vitest_zone_patch__'] === true) {
16
- throw new Error("'vitest' has already been patched with 'Zone'.");
17
- }
18
- globalThis['__vitest_zone_patch__'] = true;
19
- const SyncTestZoneSpec = Zone['SyncTestZoneSpec'];
20
- const ProxyZoneSpec = Zone['ProxyZoneSpec'];
21
- if (SyncTestZoneSpec === undefined) {
22
- throw new Error('Missing: SyncTestZoneSpec (zone.js/plugins/sync-test)');
23
- }
24
- if (ProxyZoneSpec === undefined) {
25
- throw new Error('Missing: ProxyZoneSpec (zone.js/plugins/proxy.js)');
26
- }
27
- const env = globalThis;
28
- const ambientZone = Zone.current;
29
- // Create a synchronous-only zone in which to run `describe` blocks in order to
30
- // raise an error if any asynchronous operations are attempted
31
- // inside of a `describe` but outside of a `beforeEach` or `it`.
32
- const syncZone = ambientZone.fork(new SyncTestZoneSpec('vitest.describe'));
33
- function wrapDescribeInZone(describeBody) {
34
- return function (...args) {
35
- return syncZone.run(describeBody, null, args);
36
- };
37
- }
38
- // Create a proxy zone in which to run `test` blocks so that the tests function
39
- // can retroactively install different zones.
40
- const testProxyZone = ambientZone.fork(new ProxyZoneSpec());
41
- function wrapTestInZone(testBody) {
42
- if (testBody === undefined) {
43
- return;
15
+ // Setup files are re-executed for every test file in a reused worker
16
+ // (e.g. isolate: false, or bundled setup entries). The patched functions
17
+ // live on the same globalThis as this flag, so skip instead of re-patching.
18
+ if (globalThis['__vitest_zone_patch__'] !== true) {
19
+ globalThis['__vitest_zone_patch__'] = true;
20
+ const SyncTestZoneSpec = Zone['SyncTestZoneSpec'];
21
+ const ProxyZoneSpec = Zone['ProxyZoneSpec'];
22
+ if (SyncTestZoneSpec === undefined) {
23
+ throw new Error('Missing: SyncTestZoneSpec (zone.js/plugins/sync-test)');
44
24
  }
45
- const wrappedFunc = function () {
46
- return testProxyZone.run(testBody, null, arguments);
47
- };
48
- try {
49
- Object.defineProperty(wrappedFunc, 'length', {
50
- configurable: true,
51
- writable: true,
52
- enumerable: false,
53
- });
54
- wrappedFunc.length = testBody.length;
25
+ if (ProxyZoneSpec === undefined) {
26
+ throw new Error('Missing: ProxyZoneSpec (zone.js/plugins/proxy.js)');
55
27
  }
56
- catch (e) {
57
- return testBody.length === 0
58
- ? () => testProxyZone.run(testBody, null)
59
- : (done) => testProxyZone.run(testBody, null, [done]);
60
- }
61
- return wrappedFunc;
62
- }
63
- /**
64
- * bind describe method to wrap describe.each function
65
- */
66
- const bindDescribe = (self, originalVitestFn) => function (...eachArgs) {
67
- return function (...args) {
68
- args[1] = wrapDescribeInZone(args[1]);
69
- // @ts-ignore
70
- return originalVitestFn.apply(self, eachArgs).apply(self, args);
71
- };
72
- };
73
- /**
74
- * bind test method to wrap test.each function
75
- */
76
- const bindTest = (self, originalVitestFn) => function (...eachArgs) {
77
- return function (...args) {
78
- args[1] = wrapTestInZone(args[1]);
79
- // @ts-ignore
80
- return originalVitestFn.apply(self, eachArgs).apply(self, args);
28
+ const env = globalThis;
29
+ const ambientZone = Zone.current;
30
+ // Create a synchronous-only zone in which to run `describe` blocks in order to
31
+ // raise an error if any asynchronous operations are attempted
32
+ // inside of a `describe` but outside of a `beforeEach` or `it`.
33
+ const syncZone = ambientZone.fork(new SyncTestZoneSpec('vitest.describe'));
34
+ const wrapDescribeInZone = function (describeBody) {
35
+ return function (...args) {
36
+ return syncZone.run(describeBody, null, args);
37
+ };
81
38
  };
82
- };
83
- ['describe'].forEach((methodName) => {
84
- const originalvitestFn = env[methodName];
85
- env[methodName] = function (...args) {
86
- args[1] = wrapDescribeInZone(args[1]);
87
- return originalvitestFn.apply(this, args);
39
+ // Create a proxy zone in which to run `test` blocks so that the tests function
40
+ // can retroactively install different zones.
41
+ const testProxyZone = ambientZone.fork(new ProxyZoneSpec());
42
+ const wrapTestInZone = function (testBody) {
43
+ if (testBody === undefined) {
44
+ return;
45
+ }
46
+ const wrappedFunc = function () {
47
+ return testProxyZone.run(testBody, null, arguments);
48
+ };
49
+ try {
50
+ Object.defineProperty(wrappedFunc, 'length', {
51
+ configurable: true,
52
+ writable: true,
53
+ enumerable: false,
54
+ });
55
+ wrappedFunc.length = testBody.length;
56
+ }
57
+ catch (e) {
58
+ return testBody.length === 0
59
+ ? () => testProxyZone.run(testBody, null)
60
+ : (done) => testProxyZone.run(testBody, null, [done]);
61
+ }
62
+ return wrappedFunc;
88
63
  };
89
- env[methodName].each = bindDescribe(originalvitestFn, originalvitestFn.each);
90
- if (methodName === 'describe') {
91
- env[methodName].only = bindDescribe(originalvitestFn, originalvitestFn.only);
92
- env[methodName].skip = bindDescribe(originalvitestFn, originalvitestFn.skip);
93
- }
94
- });
95
- ['test', 'it'].forEach((methodName) => {
96
- const originalvitestFn = env[methodName];
97
- env[methodName] = function (...args) {
98
- args[1] = wrapTestInZone(args[1]);
99
- return originalvitestFn.apply(this, args);
64
+ /**
65
+ * bind describe method to wrap describe.each function
66
+ */
67
+ const bindDescribe = (self, originalVitestFn) => function (...eachArgs) {
68
+ return function (...args) {
69
+ args[1] = wrapDescribeInZone(args[1]);
70
+ // @ts-ignore
71
+ return originalVitestFn.apply(self, eachArgs).apply(self, args);
72
+ };
100
73
  };
101
- env[methodName].each = bindTest(originalvitestFn, originalvitestFn.each);
102
- env[methodName].only = bindTest(originalvitestFn, originalvitestFn.only);
103
- env[methodName].skip = bindTest(originalvitestFn, originalvitestFn.skip);
104
- if (methodName === 'test' || methodName === 'it') {
105
- env[methodName].todo = function (...args) {
106
- return originalvitestFn.todo.apply(this, args);
74
+ /**
75
+ * bind test method to wrap test.each function
76
+ */
77
+ const bindTest = (self, originalVitestFn) => function (...eachArgs) {
78
+ return function (...args) {
79
+ args[1] = wrapTestInZone(args[1]);
80
+ // @ts-ignore
81
+ return originalVitestFn.apply(self, eachArgs).apply(self, args);
107
82
  };
108
- }
109
- });
110
- ['beforeEach', 'afterEach', 'beforeAll', 'afterAll'].forEach((methodName) => {
111
- const originalvitestFn = env[methodName];
112
- env[methodName] = function (...args) {
113
- args[0] = wrapTestInZone(args[0]);
114
- return originalvitestFn.apply(this, args);
115
83
  };
116
- });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3ZpdGVzdC1hbmd1bGFyL3NldHVwLXpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLENBQUM7QUFDakIsT0FBTywyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8saUJBQWlCLENBQUM7QUFFekIsT0FBTyxzQkFBc0IsQ0FBQztBQUM5Qjs7O0dBR0c7QUFDSCxpQkFBaUI7QUFDakIsTUFBTSxJQUFJLEdBQUksVUFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUV6QyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztJQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELElBQUssVUFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUEsVUFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNwRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU1QyxJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO0lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBQ0QsSUFBSSxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7SUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxNQUFNLEdBQUcsR0FBRyxVQUFpQixDQUFDO0FBQzlCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxP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QUFVLENBQUMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpFLElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDakQsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksR0FBRyxVQUFVLEdBQUcsSUFBUztZQUMzQyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUVILENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7SUFDMUUsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFekMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsR0FBRyxJQUFXO1FBQ3hDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEMsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd6b25lLmpzJztcbmltcG9ydCAnem9uZS5qcy9wbHVnaW5zL3N5bmMtdGVzdCc7XG5pbXBvcnQgJ3pvbmUuanMvcGx1Z2lucy9wcm94eSc7XG5pbXBvcnQgJ3pvbmUuanMvdGVzdGluZyc7XG5cbmltcG9ydCAnLi9zZXR1cC1zbmFwc2hvdHMuanMnO1xuLyoqXG4gKiBQYXRjaCBWaXRlc3QncyBkZXNjcmliZS90ZXN0L2JlZm9yZUVhY2gvYWZ0ZXJFYWNoIGZ1bmN0aW9ucyBzbyB0ZXN0IGNvZGVcbiAqIGFsd2F5cyBydW5zIGluIGEgdGVzdFpvbmUgKFByb3h5Wm9uZSkuXG4gKi9cbi8qIGdsb2JhbCBab25lICovXG5jb25zdCBab25lID0gKGdsb2JhbFRoaXMgYXMgYW55KVsnWm9uZSddO1xuXG5pZiAoWm9uZSA9PT0gdW5kZWZpbmVkKSB7XG4gIHRocm93IG5ldyBFcnJvcignTWlzc2luZzogWm9uZSAoem9uZS5qcyknKTtcbn1cblxuaWYgKChnbG9iYWxUaGlzIGFzIGFueSlbJ19fdml0ZXN0X3pvbmVfcGF0Y2hfXyddID09PSB0cnVlKSB7XG4gIHRocm93IG5ldyBFcnJvcihcIid2aXRlc3QnIGhhcyBhbHJlYWR5IGJlZW4gcGF0Y2hlZCB3aXRoICdab25lJy5cIik7XG59XG5cbihnbG9iYWxUaGlzIGFzIGFueSlbJ19fdml0ZXN0X3pvbmVfcGF0Y2hfXyddID0gdHJ1ZTtcbmNvbnN0IFN5bmNUZXN0Wm9uZVNwZWMgPSBab25lWydTeW5jVGVzdFpvbmVTcGVjJ107XG5jb25zdCBQcm94eVpvbmVTcGVjID0gWm9uZVsnUHJveHlab25lU3BlYyddO1xuXG5pZiAoU3luY1Rlc3Rab25lU3BlYyA9PT0gdW5kZWZpbmVkKSB7XG4gIHRocm93IG5ldyBFcnJvcignTWlzc2luZzogU3luY1Rlc3Rab25lU3BlYyAoem9uZS5qcy9wbHVnaW5zL3N5bmMtdGVzdCknKTtcbn1cbmlmIChQcm94eVpvbmVTcGVjID09PSB1bmRlZmluZWQpIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nOiBQcm94eVpvbmVTcGVjICh6b25lLmpzL3BsdWdpbnMvcHJveHkuanMpJyk7XG59XG5cbmNvbnN0IGVudiA9IGdsb2JhbFRoaXMgYXMgYW55O1xuY29uc3QgYW1iaWVudFpvbmUgPSBab25lLmN1cnJlbnQ7XG5cbi8vIENyZWF0ZSBhIHN5bmNocm9ub3VzLW9ubHkgem9uZSBpbiB3aGljaCB0byBydW4gYGRlc2NyaWJlYCBibG9ja3MgaW4gb3JkZXIgdG9cbi8vIHJhaXNlIGFuIGVycm9yIGlmIGFueSBhc3luY2hyb25vdXMgb3BlcmF0aW9ucyBhcmUgYXR0ZW1wdGVkXG4vLyBpbnNpZGUgb2YgYSBgZGVzY3JpYmVgIGJ1dCBvdXRzaWRlIG9mIGEgYGJlZm9yZUVhY2hgIG9yIGBpdGAuXG5jb25zdCBzeW5jWm9uZSA9IGFtYmllbnRab25lLmZvcmsobmV3IFN5bmNUZXN0Wm9uZVNwZWMoJ3ZpdGVzdC5kZXNjcmliZScpKTtcbmZ1bmN0aW9uIHdyYXBEZXNjcmliZUluWm9uZShkZXNjcmliZUJvZHk6IGFueSkge1xuICByZXR1cm4gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueSkge1xuICAgIHJldHVybiBzeW5jWm9uZS5ydW4oZGVzY3JpYmVCb2R5LCBudWxsLCBhcmdzKTtcbiAgfTtcbn1cblxuLy8gQ3JlYXRlIGEgcHJveHkgem9uZSBpbiB3aGljaCB0byBydW4gYHRlc3RgIGJsb2NrcyBzbyB0aGF0IHRoZSB0ZXN0cyBmdW5jdGlvblxuLy8gY2FuIHJldHJvYWN0aXZlbHkgaW5zdGFsbCBkaWZmZXJlbnQgem9uZXMuXG5jb25zdCB0ZXN0UHJveHlab25lID0gYW1iaWVudFpvbmUuZm9yayhuZXcgUHJveHlab25lU3BlYygpKTtcbmZ1bmN0aW9uIHdyYXBUZXN0SW5ab25lKHRlc3RCb2R5OiBzdHJpbmcgfCBhbnlbXSB8IHVuZGVmaW5lZCkge1xuICBpZiAodGVzdEJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHdyYXBwZWRGdW5jID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0ZXN0UHJveHlab25lLnJ1bih0ZXN0Qm9keSwgbnVsbCwgYXJndW1lbnRzKTtcbiAgfTtcbiAgdHJ5IHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkod3JhcHBlZEZ1bmMsICdsZW5ndGgnLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIH0pO1xuICAgIHdyYXBwZWRGdW5jLmxlbmd0aCA9IHRlc3RCb2R5Lmxlbmd0aDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0ZXN0Qm9keS5sZW5ndGggPT09IDBcbiAgICAgID8gKCkgPT4gdGVzdFByb3h5Wm9uZS5ydW4odGVzdEJvZHksIG51bGwpXG4gICAgICA6IChkb25lOiBhbnkpID0+IHRlc3RQcm94eVpvbmUucnVuKHRlc3RCb2R5LCBudWxsLCBbZG9uZV0pO1xuICB9XG5cbiAgcmV0dXJuIHdyYXBwZWRGdW5jO1xufVxuXG4vKipcbiAqIGJpbmQgZGVzY3JpYmUgbWV0aG9kIHRvIHdyYXAgZGVzY3JpYmUuZWFjaCBmdW5jdGlvblxuICovXG5jb25zdCBiaW5kRGVzY3JpYmUgPSAoXG4gIHNlbGY6IGFueSxcbiAgb3JpZ2luYWxWaXRlc3RGbjoge1xuICAgIGFwcGx5OiAoXG4gICAgICBhcmcwOiBhbnksXG4gICAgICBhcmcxOiBhbnlbXSxcbiAgICApID0+IHtcbiAgICAgICgpOiBhbnk7XG4gICAgICBuZXcgKCk6IGFueTtcbiAgICAgIGFwcGx5OiB7IChhcmcwOiBhbnksIGFyZzE6IGFueVtdKTogYW55OyBuZXcgKCk6IGFueSB9O1xuICAgIH07XG4gIH0sXG4pID0+XG4gIGZ1bmN0aW9uICguLi5lYWNoQXJnczogYW55KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgYXJnc1sxXSA9IHdyYXBEZXNjcmliZUluWm9uZShhcmdzWzFdKTtcblxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgcmV0dXJuIG9yaWdpbmFsVml0ZXN0Rm4uYXBwbHkoc2VsZiwgZWFjaEFyZ3MpLmFwcGx5KHNlbGYsIGFyZ3MpO1xuICAgIH07XG4gIH07XG5cbi8qKlxuICogYmluZCB0ZXN0IG1ldGhvZCB0byB3cmFwIHRlc3QuZWFjaCBmdW5jdGlvblxuICovXG5jb25zdCBiaW5kVGVzdCA9IChcbiAgc2VsZjogYW55LFxuICBvcmlnaW5hbFZpdGVzdEZuOiB7XG4gICAgYXBwbHk6IChcbiAgICAgIGFyZzA6IGFueSxcbiAgICAgIGFyZzE6IGFueVtdLFxuICAgICkgPT4ge1xuICAgICAgKCk6IGFueTtcbiAgICAgIG5ldyAoKTogYW55O1xuICAgICAgYXBwbHk6IHsgKGFyZzA6IGFueSwgYXJnMTogYW55W10pOiBhbnk7IG5ldyAoKTogYW55IH07XG4gICAgfTtcbiAgfSxcbikgPT5cbiAgZnVuY3Rpb24gKC4uLmVhY2hBcmdzOiBhbnkpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBhcmdzWzFdID0gd3JhcFRlc3RJblpvbmUoYXJnc1sxXSk7XG5cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBvcmlnaW5hbFZpdGVzdEZuLmFwcGx5KHNlbGYsIGVhY2hBcmdzKS5hcHBseShzZWxmLCBhcmdzKTtcbiAgICB9O1xuICB9O1xuXG5bJ2Rlc2NyaWJlJ10uZm9yRWFjaCgobWV0aG9kTmFtZSkgPT4ge1xuICBjb25zdCBvcmlnaW5hbHZpdGVzdEZuID0gZW52W21ldGhvZE5hbWVdO1xuICBlbnZbbWV0aG9kTmFtZV0gPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICBhcmdzWzFdID0gd3JhcERlc2NyaWJlSW5ab25lKGFyZ3NbMV0pO1xuXG4gICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4uYXBwbHkodGhpcywgYXJncyk7XG4gIH07XG4gIGVudlttZXRob2ROYW1lXS5lYWNoID0gYmluZERlc2NyaWJlKG9yaWdpbmFsdml0ZXN0Rm4sIG9yaWdpbmFsdml0ZXN0Rm4uZWFjaCk7XG4gIGlmIChtZXRob2ROYW1lID09PSAnZGVzY3JpYmUnKSB7XG4gICAgZW52W21ldGhvZE5hbWVdLm9ubHkgPSBiaW5kRGVzY3JpYmUoXG4gICAgICBvcmlnaW5hbHZpdGVzdEZuLFxuICAgICAgb3JpZ2luYWx2aXRlc3RGbi5vbmx5LFxuICAgICk7XG4gICAgZW52W21ldGhvZE5hbWVdLnNraXAgPSBiaW5kRGVzY3JpYmUoXG4gICAgICBvcmlnaW5hbHZpdGVzdEZuLFxuICAgICAgb3JpZ2luYWx2aXRlc3RGbi5za2lwLFxuICAgICk7XG4gIH1cbn0pO1xuXG5bJ3Rlc3QnLCAnaXQnXS5mb3JFYWNoKChtZXRob2ROYW1lKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsdml0ZXN0Rm4gPSBlbnZbbWV0aG9kTmFtZV07XG4gIGVudlttZXRob2ROYW1lXSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgIGFyZ3NbMV0gPSB3cmFwVGVzdEluWm9uZShhcmdzWzFdKTtcblxuICAgIHJldHVybiBvcmlnaW5hbHZpdGVzdEZuLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICB9O1xuICBlbnZbbWV0aG9kTmFtZV0uZWFjaCA9IGJpbmRUZXN0KG9yaWdpbmFsdml0ZXN0Rm4sIG9yaWdpbmFsdml0ZXN0Rm4uZWFjaCk7XG4gIGVudlttZXRob2ROYW1lXS5vbmx5ID0gYmluZFRlc3Qob3JpZ2luYWx2aXRlc3RGbiwgb3JpZ2luYWx2aXRlc3RGbi5vbmx5KTtcbiAgZW52W21ldGhvZE5hbWVdLnNraXAgPSBiaW5kVGVzdChvcmlnaW5hbHZpdGVzdEZuLCBvcmlnaW5hbHZpdGVzdEZuLnNraXApO1xuXG4gIGlmIChtZXRob2ROYW1lID09PSAndGVzdCcgfHwgbWV0aG9kTmFtZSA9PT0gJ2l0Jykge1xuICAgIGVudlttZXRob2ROYW1lXS50b2RvID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueSkge1xuICAgICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4udG9kby5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuICB9XG59KTtcblxuWydiZWZvcmVFYWNoJywgJ2FmdGVyRWFjaCcsICdiZWZvcmVBbGwnLCAnYWZ0ZXJBbGwnXS5mb3JFYWNoKChtZXRob2ROYW1lKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsdml0ZXN0Rm4gPSBlbnZbbWV0aG9kTmFtZV07XG5cbiAgZW52W21ldGhvZE5hbWVdID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgYXJnc1swXSA9IHdyYXBUZXN0SW5ab25lKGFyZ3NbMF0pO1xuXG4gICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4uYXBwbHkodGhpcywgYXJncyk7XG4gIH07XG59KTtcbiJdfQ==
84
+ ['describe'].forEach((methodName) => {
85
+ const originalvitestFn = env[methodName];
86
+ env[methodName] = function (...args) {
87
+ args[1] = wrapDescribeInZone(args[1]);
88
+ return originalvitestFn.apply(this, args);
89
+ };
90
+ env[methodName].each = bindDescribe(originalvitestFn, originalvitestFn.each);
91
+ if (methodName === 'describe') {
92
+ env[methodName].only = bindDescribe(originalvitestFn, originalvitestFn.only);
93
+ env[methodName].skip = bindDescribe(originalvitestFn, originalvitestFn.skip);
94
+ }
95
+ });
96
+ ['test', 'it'].forEach((methodName) => {
97
+ const originalvitestFn = env[methodName];
98
+ env[methodName] = function (...args) {
99
+ args[1] = wrapTestInZone(args[1]);
100
+ return originalvitestFn.apply(this, args);
101
+ };
102
+ env[methodName].each = bindTest(originalvitestFn, originalvitestFn.each);
103
+ env[methodName].only = bindTest(originalvitestFn, originalvitestFn.only);
104
+ env[methodName].skip = bindTest(originalvitestFn, originalvitestFn.skip);
105
+ if (methodName === 'test' || methodName === 'it') {
106
+ env[methodName].todo = function (...args) {
107
+ return originalvitestFn.todo.apply(this, args);
108
+ };
109
+ }
110
+ });
111
+ ['beforeEach', 'afterEach', 'beforeAll', 'afterAll'].forEach((methodName) => {
112
+ const originalvitestFn = env[methodName];
113
+ env[methodName] = function (...args) {
114
+ args[0] = wrapTestInZone(args[0]);
115
+ return originalvitestFn.apply(this, args);
116
+ };
117
+ });
118
+ }
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtem9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3ZpdGVzdC1hbmd1bGFyL3NldHVwLXpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxTQUFTLENBQUM7QUFDakIsT0FBTywyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8saUJBQWlCLENBQUM7QUFFekIsT0FBTyxzQkFBc0IsQ0FBQztBQUM5Qjs7O0dBR0c7QUFDSCxpQkFBaUI7QUFDakIsTUFBTSxJQUFJLEdBQUksVUFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUV6QyxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztJQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELHFFQUFxRTtBQUNyRSx5RUFBeUU7QUFDekUsNEVBQTRFO0FBQzVFLElBQUssVUFBa0IsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3pELFVBQWtCLENBQUMsdUJBQXVCLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNsRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFNUMsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELElBQUksYUFBYSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsVUFBaUIsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBRWpD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RSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RSxJQUFJLFVBQVUsS0FBSyxNQUFNLElBQUksVUFBVSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pELEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLEdBQUcsVUFBVSxHQUFHLElBQVM7Z0JBQzNDLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUMxRSxNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6QyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxHQUFHLElBQVc7WUFDeEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVsQyxPQUFPLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd6b25lLmpzJztcbmltcG9ydCAnem9uZS5qcy9wbHVnaW5zL3N5bmMtdGVzdCc7XG5pbXBvcnQgJ3pvbmUuanMvcGx1Z2lucy9wcm94eSc7XG5pbXBvcnQgJ3pvbmUuanMvdGVzdGluZyc7XG5cbmltcG9ydCAnLi9zZXR1cC1zbmFwc2hvdHMuanMnO1xuLyoqXG4gKiBQYXRjaCBWaXRlc3QncyBkZXNjcmliZS90ZXN0L2JlZm9yZUVhY2gvYWZ0ZXJFYWNoIGZ1bmN0aW9ucyBzbyB0ZXN0IGNvZGVcbiAqIGFsd2F5cyBydW5zIGluIGEgdGVzdFpvbmUgKFByb3h5Wm9uZSkuXG4gKi9cbi8qIGdsb2JhbCBab25lICovXG5jb25zdCBab25lID0gKGdsb2JhbFRoaXMgYXMgYW55KVsnWm9uZSddO1xuXG5pZiAoWm9uZSA9PT0gdW5kZWZpbmVkKSB7XG4gIHRocm93IG5ldyBFcnJvcignTWlzc2luZzogWm9uZSAoem9uZS5qcyknKTtcbn1cblxuLy8gU2V0dXAgZmlsZXMgYXJlIHJlLWV4ZWN1dGVkIGZvciBldmVyeSB0ZXN0IGZpbGUgaW4gYSByZXVzZWQgd29ya2VyXG4vLyAoZS5nLiBpc29sYXRlOiBmYWxzZSwgb3IgYnVuZGxlZCBzZXR1cCBlbnRyaWVzKS4gVGhlIHBhdGNoZWQgZnVuY3Rpb25zXG4vLyBsaXZlIG9uIHRoZSBzYW1lIGdsb2JhbFRoaXMgYXMgdGhpcyBmbGFnLCBzbyBza2lwIGluc3RlYWQgb2YgcmUtcGF0Y2hpbmcuXG5pZiAoKGdsb2JhbFRoaXMgYXMgYW55KVsnX192aXRlc3Rfem9uZV9wYXRjaF9fJ10gIT09IHRydWUpIHtcbiAgKGdsb2JhbFRoaXMgYXMgYW55KVsnX192aXRlc3Rfem9uZV9wYXRjaF9fJ10gPSB0cnVlO1xuICBjb25zdCBTeW5jVGVzdFpvbmVTcGVjID0gWm9uZVsnU3luY1Rlc3Rab25lU3BlYyddO1xuICBjb25zdCBQcm94eVpvbmVTcGVjID0gWm9uZVsnUHJveHlab25lU3BlYyddO1xuXG4gIGlmIChTeW5jVGVzdFpvbmVTcGVjID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmc6IFN5bmNUZXN0Wm9uZVNwZWMgKHpvbmUuanMvcGx1Z2lucy9zeW5jLXRlc3QpJyk7XG4gIH1cbiAgaWYgKFByb3h5Wm9uZVNwZWMgPT09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZzogUHJveHlab25lU3BlYyAoem9uZS5qcy9wbHVnaW5zL3Byb3h5LmpzKScpO1xuICB9XG5cbiAgY29uc3QgZW52ID0gZ2xvYmFsVGhpcyBhcyBhbnk7XG4gIGNvbnN0IGFtYmllbnRab25lID0gWm9uZS5jdXJyZW50O1xuXG4gIC8vIENyZWF0ZSBhIHN5bmNocm9ub3VzLW9ubHkgem9uZSBpbiB3aGljaCB0byBydW4gYGRlc2NyaWJlYCBibG9ja3MgaW4gb3JkZXIgdG9cbiAgLy8gcmFpc2UgYW4gZXJyb3IgaWYgYW55IGFzeW5jaHJvbm91cyBvcGVyYXRpb25zIGFyZSBhdHRlbXB0ZWRcbiAgLy8gaW5zaWRlIG9mIGEgYGRlc2NyaWJlYCBidXQgb3V0c2lkZSBvZiBhIGBiZWZvcmVFYWNoYCBvciBgaXRgLlxuICBjb25zdCBzeW5jWm9uZSA9IGFtYmllbnRab25lLmZvcmsobmV3IFN5bmNUZXN0Wm9uZVNwZWMoJ3ZpdGVzdC5kZXNjcmliZScpKTtcbiAgY29uc3Qgd3JhcERlc2NyaWJlSW5ab25lID0gZnVuY3Rpb24gKGRlc2NyaWJlQm9keTogYW55KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnkpIHtcbiAgICAgIHJldHVybiBzeW5jWm9uZS5ydW4oZGVzY3JpYmVCb2R5LCBudWxsLCBhcmdzKTtcbiAgICB9O1xuICB9O1xuXG4gIC8vIENyZWF0ZSBhIHByb3h5IHpvbmUgaW4gd2hpY2ggdG8gcnVuIGB0ZXN0YCBibG9ja3Mgc28gdGhhdCB0aGUgdGVzdHMgZnVuY3Rpb25cbiAgLy8gY2FuIHJldHJvYWN0aXZlbHkgaW5zdGFsbCBkaWZmZXJlbnQgem9uZXMuXG4gIGNvbnN0IHRlc3RQcm94eVpvbmUgPSBhbWJpZW50Wm9uZS5mb3JrKG5ldyBQcm94eVpvbmVTcGVjKCkpO1xuICBjb25zdCB3cmFwVGVzdEluWm9uZSA9IGZ1bmN0aW9uICh0ZXN0Qm9keTogc3RyaW5nIHwgYW55W10gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodGVzdEJvZHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHdyYXBwZWRGdW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHRlc3RQcm94eVpvbmUucnVuKHRlc3RCb2R5LCBudWxsLCBhcmd1bWVudHMpO1xuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVkRnVuYywgJ2xlbmd0aCcsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB9KTtcbiAgICAgIHdyYXBwZWRGdW5jLmxlbmd0aCA9IHRlc3RCb2R5Lmxlbmd0aDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdGVzdEJvZHkubGVuZ3RoID09PSAwXG4gICAgICAgID8gKCkgPT4gdGVzdFByb3h5Wm9uZS5ydW4odGVzdEJvZHksIG51bGwpXG4gICAgICAgIDogKGRvbmU6IGFueSkgPT4gdGVzdFByb3h5Wm9uZS5ydW4odGVzdEJvZHksIG51bGwsIFtkb25lXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdyYXBwZWRGdW5jO1xuICB9O1xuXG4gIC8qKlxuICAgKiBiaW5kIGRlc2NyaWJlIG1ldGhvZCB0byB3cmFwIGRlc2NyaWJlLmVhY2ggZnVuY3Rpb25cbiAgICovXG4gIGNvbnN0IGJpbmREZXNjcmliZSA9IChcbiAgICBzZWxmOiBhbnksXG4gICAgb3JpZ2luYWxWaXRlc3RGbjoge1xuICAgICAgYXBwbHk6IChcbiAgICAgICAgYXJnMDogYW55LFxuICAgICAgICBhcmcxOiBhbnlbXSxcbiAgICAgICkgPT4ge1xuICAgICAgICAoKTogYW55O1xuICAgICAgICBuZXcgKCk6IGFueTtcbiAgICAgICAgYXBwbHk6IHsgKGFyZzA6IGFueSwgYXJnMTogYW55W10pOiBhbnk7IG5ldyAoKTogYW55IH07XG4gICAgICB9O1xuICAgIH0sXG4gICkgPT5cbiAgICBmdW5jdGlvbiAoLi4uZWFjaEFyZ3M6IGFueSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBhcmdzWzFdID0gd3JhcERlc2NyaWJlSW5ab25lKGFyZ3NbMV0pO1xuXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsVml0ZXN0Rm4uYXBwbHkoc2VsZiwgZWFjaEFyZ3MpLmFwcGx5KHNlbGYsIGFyZ3MpO1xuICAgICAgfTtcbiAgICB9O1xuXG4gIC8qKlxuICAgKiBiaW5kIHRlc3QgbWV0aG9kIHRvIHdyYXAgdGVzdC5lYWNoIGZ1bmN0aW9uXG4gICAqL1xuICBjb25zdCBiaW5kVGVzdCA9IChcbiAgICBzZWxmOiBhbnksXG4gICAgb3JpZ2luYWxWaXRlc3RGbjoge1xuICAgICAgYXBwbHk6IChcbiAgICAgICAgYXJnMDogYW55LFxuICAgICAgICBhcmcxOiBhbnlbXSxcbiAgICAgICkgPT4ge1xuICAgICAgICAoKTogYW55O1xuICAgICAgICBuZXcgKCk6IGFueTtcbiAgICAgICAgYXBwbHk6IHsgKGFyZzA6IGFueSwgYXJnMTogYW55W10pOiBhbnk7IG5ldyAoKTogYW55IH07XG4gICAgICB9O1xuICAgIH0sXG4gICkgPT5cbiAgICBmdW5jdGlvbiAoLi4uZWFjaEFyZ3M6IGFueSkge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBhcmdzWzFdID0gd3JhcFRlc3RJblpvbmUoYXJnc1sxXSk7XG5cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gb3JpZ2luYWxWaXRlc3RGbi5hcHBseShzZWxmLCBlYWNoQXJncykuYXBwbHkoc2VsZiwgYXJncyk7XG4gICAgICB9O1xuICAgIH07XG5cbiAgWydkZXNjcmliZSddLmZvckVhY2goKG1ldGhvZE5hbWUpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbHZpdGVzdEZuID0gZW52W21ldGhvZE5hbWVdO1xuICAgIGVudlttZXRob2ROYW1lXSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgYXJnc1sxXSA9IHdyYXBEZXNjcmliZUluWm9uZShhcmdzWzFdKTtcblxuICAgICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4uYXBwbHkodGhpcywgYXJncyk7XG4gICAgfTtcbiAgICBlbnZbbWV0aG9kTmFtZV0uZWFjaCA9IGJpbmREZXNjcmliZShcbiAgICAgIG9yaWdpbmFsdml0ZXN0Rm4sXG4gICAgICBvcmlnaW5hbHZpdGVzdEZuLmVhY2gsXG4gICAgKTtcbiAgICBpZiAobWV0aG9kTmFtZSA9PT0gJ2Rlc2NyaWJlJykge1xuICAgICAgZW52W21ldGhvZE5hbWVdLm9ubHkgPSBiaW5kRGVzY3JpYmUoXG4gICAgICAgIG9yaWdpbmFsdml0ZXN0Rm4sXG4gICAgICAgIG9yaWdpbmFsdml0ZXN0Rm4ub25seSxcbiAgICAgICk7XG4gICAgICBlbnZbbWV0aG9kTmFtZV0uc2tpcCA9IGJpbmREZXNjcmliZShcbiAgICAgICAgb3JpZ2luYWx2aXRlc3RGbixcbiAgICAgICAgb3JpZ2luYWx2aXRlc3RGbi5za2lwLFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIFsndGVzdCcsICdpdCddLmZvckVhY2goKG1ldGhvZE5hbWUpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbHZpdGVzdEZuID0gZW52W21ldGhvZE5hbWVdO1xuICAgIGVudlttZXRob2ROYW1lXSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgYXJnc1sxXSA9IHdyYXBUZXN0SW5ab25lKGFyZ3NbMV0pO1xuXG4gICAgICByZXR1cm4gb3JpZ2luYWx2aXRlc3RGbi5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9O1xuICAgIGVudlttZXRob2ROYW1lXS5lYWNoID0gYmluZFRlc3Qob3JpZ2luYWx2aXRlc3RGbiwgb3JpZ2luYWx2aXRlc3RGbi5lYWNoKTtcbiAgICBlbnZbbWV0aG9kTmFtZV0ub25seSA9IGJpbmRUZXN0KG9yaWdpbmFsdml0ZXN0Rm4sIG9yaWdpbmFsdml0ZXN0Rm4ub25seSk7XG4gICAgZW52W21ldGhvZE5hbWVdLnNraXAgPSBiaW5kVGVzdChvcmlnaW5hbHZpdGVzdEZuLCBvcmlnaW5hbHZpdGVzdEZuLnNraXApO1xuXG4gICAgaWYgKG1ldGhvZE5hbWUgPT09ICd0ZXN0JyB8fCBtZXRob2ROYW1lID09PSAnaXQnKSB7XG4gICAgICBlbnZbbWV0aG9kTmFtZV0udG9kbyA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsdml0ZXN0Rm4udG9kby5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgIH07XG4gICAgfVxuICB9KTtcblxuICBbJ2JlZm9yZUVhY2gnLCAnYWZ0ZXJFYWNoJywgJ2JlZm9yZUFsbCcsICdhZnRlckFsbCddLmZvckVhY2goKG1ldGhvZE5hbWUpID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbHZpdGVzdEZuID0gZW52W21ldGhvZE5hbWVdO1xuXG4gICAgZW52W21ldGhvZE5hbWVdID0gZnVuY3Rpb24gKC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBhcmdzWzBdID0gd3JhcFRlc3RJblpvbmUoYXJnc1swXSk7XG5cbiAgICAgIHJldHVybiBvcmlnaW5hbHZpdGVzdEZuLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH07XG4gIH0pO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- export declare const ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.7.0-beta.9";
1
+ export declare const ANALOG_JS_VITE_PLUGIN_ANGULAR = "^2.7.1-beta.1";
2
2
  export declare const JSDOM = "^22.0.0";
3
3
  export declare const VITE_TSCONFIG_PATHS = "^4.2.0";
4
4
  export declare const VITE = "^7.0.0";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PLAYWRIGHT = exports.VITEST_BROWSER_PLAYWRIGHT = exports.VITEST_V4 = exports.VITE = exports.VITE_TSCONFIG_PATHS = exports.JSDOM = exports.ANALOG_JS_VITE_PLUGIN_ANGULAR = void 0;
4
4
  // Version constants (Angular 20+)
5
- exports.ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.7.0-beta.9';
5
+ exports.ANALOG_JS_VITE_PLUGIN_ANGULAR = '^2.7.1-beta.1';
6
6
  exports.JSDOM = '^22.0.0';
7
7
  exports.VITE_TSCONFIG_PATHS = '^4.2.0';
8
8
  exports.VITE = '^7.0.0';