UNPKG

@analogjs/vitest-angular

Version:

Vitest Builder for Angular

28 lines 4.7 kB
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==