@analogjs/vitest-angular
Version:
Vitest Builder for Angular
28 lines • 4.7 kB
JavaScript
import { __decorate } from "tslib";
import { NgModule, provideZonelessChangeDetection } from '@angular/core';
import { ɵgetCleanupHook as getCleanupHook, getTestBed, } from '@angular/core/testing';
import { BrowserTestingModule, platformBrowserTesting, } from '@angular/platform-browser/testing';
import { afterEach, beforeEach } from 'vitest';
const ANGULAR_TESTBED_SETUP = Symbol.for('testbed-setup');
export function setupTestBed(options = { zoneless: true, providers: [] }) {
beforeEach(getCleanupHook(false));
afterEach(getCleanupHook(true));
if (!globalThis[ANGULAR_TESTBED_SETUP]) {
globalThis[ANGULAR_TESTBED_SETUP] = true;
let ZonelessTestModule = class ZonelessTestModule {
};
ZonelessTestModule = __decorate([
NgModule({
providers: options?.zoneless ? [provideZonelessChangeDetection()] : [],
})
], ZonelessTestModule);
getTestBed().initTestEnvironment([
BrowserTestingModule,
...(options?.zoneless ? [ZonelessTestModule] : []),
...(options?.providers || []),
], platformBrowserTesting(), options?.browserMode
? { teardown: { destroyAfterEach: false } }
: undefined);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtdGVzdGJlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3ZpdGVzdC1hbmd1bGFyL3NldHVwLXRlc3RiZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsOEJBQThCLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNMLGVBQWUsSUFBSSxjQUFjLEVBQ2pDLFVBQVUsR0FDWCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsc0JBQXNCLEdBQ3ZCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFL0MsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBUTFELE1BQU0sVUFBVSxZQUFZLENBQzFCLFVBQStCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBRWhFLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFaEMsSUFBSSxDQUFFLFVBQWtCLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1FBQy9DLFVBQWtCLENBQUMscUJBQXFCLENBQUMsR0FBRyxJQUFJLENBQUM7UUFLbEQsSUFBTSxrQkFBa0IsR0FBeEIsTUFBTSxrQkFBa0I7U0FBRyxDQUFBO1FBQXJCLGtCQUFrQjtZQUh2QixRQUFRLENBQUM7Z0JBQ1IsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2FBQ3ZFLENBQUM7V0FDSSxrQkFBa0IsQ0FBRztRQUUzQixVQUFVLEVBQUUsQ0FBQyxtQkFBbUIsQ0FDOUI7WUFDRSxvQkFBb0I7WUFDcEIsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xELEdBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBaUI7U0FDL0MsRUFDRCxzQkFBc0IsRUFBRSxFQUN4QixPQUFPLEVBQUUsV0FBVztZQUNsQixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMzQyxDQUFDLENBQUMsU0FBUyxDQUNkLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBwcm92aWRlWm9uZWxlc3NDaGFuZ2VEZXRlY3Rpb24sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIMm1Z2V0Q2xlYW51cEhvb2sgYXMgZ2V0Q2xlYW51cEhvb2ssXG4gIGdldFRlc3RCZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQge1xuICBCcm93c2VyVGVzdGluZ01vZHVsZSxcbiAgcGxhdGZvcm1Ccm93c2VyVGVzdGluZyxcbn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci90ZXN0aW5nJztcbmltcG9ydCB7IGFmdGVyRWFjaCwgYmVmb3JlRWFjaCB9IGZyb20gJ3ZpdGVzdCc7XG5cbmNvbnN0IEFOR1VMQVJfVEVTVEJFRF9TRVRVUCA9IFN5bWJvbC5mb3IoJ3Rlc3RiZWQtc2V0dXAnKTtcblxudHlwZSBUZXN0QmVkU2V0dXBPcHRpb25zID0ge1xuICB6b25lbGVzcz86IGJvb2xlYW47XG4gIHByb3ZpZGVycz86IFR5cGU8YW55PltdO1xuICBicm93c2VyTW9kZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBUZXN0QmVkKFxuICBvcHRpb25zOiBUZXN0QmVkU2V0dXBPcHRpb25zID0geyB6b25lbGVzczogdHJ1ZSwgcHJvdmlkZXJzOiBbXSB9LFxuKSB7XG4gIGJlZm9yZUVhY2goZ2V0Q2xlYW51cEhvb2soZmFsc2UpKTtcbiAgYWZ0ZXJFYWNoKGdldENsZWFudXBIb29rKHRydWUpKTtcblxuICBpZiAoIShnbG9iYWxUaGlzIGFzIGFueSlbQU5HVUxBUl9URVNUQkVEX1NFVFVQXSkge1xuICAgIChnbG9iYWxUaGlzIGFzIGFueSlbQU5HVUxBUl9URVNUQkVEX1NFVFVQXSA9IHRydWU7XG5cbiAgICBATmdNb2R1bGUoe1xuICAgICAgcHJvdmlkZXJzOiBvcHRpb25zPy56b25lbGVzcyA/IFtwcm92aWRlWm9uZWxlc3NDaGFuZ2VEZXRlY3Rpb24oKV0gOiBbXSxcbiAgICB9KVxuICAgIGNsYXNzIFpvbmVsZXNzVGVzdE1vZHVsZSB7fVxuXG4gICAgZ2V0VGVzdEJlZCgpLmluaXRUZXN0RW52aXJvbm1lbnQoXG4gICAgICBbXG4gICAgICAgIEJyb3dzZXJUZXN0aW5nTW9kdWxlLFxuICAgICAgICAuLi4ob3B0aW9ucz8uem9uZWxlc3MgPyBbWm9uZWxlc3NUZXN0TW9kdWxlXSA6IFtdKSxcbiAgICAgICAgLi4uKChvcHRpb25zPy5wcm92aWRlcnMgfHwgW10pIGFzIFR5cGU8YW55PltdKSxcbiAgICAgIF0sXG4gICAgICBwbGF0Zm9ybUJyb3dzZXJUZXN0aW5nKCksXG4gICAgICBvcHRpb25zPy5icm93c2VyTW9kZVxuICAgICAgICA/IHsgdGVhcmRvd246IHsgZGVzdHJveUFmdGVyRWFjaDogZmFsc2UgfSB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==