angular/packages/platform-browser/testing/src/browser.ts
Andrew Scott abbaf8f639 refactor(core): Throw a runtime error if both zone and zoneless are provided (#55410)
This commit adds a dev-mode error if both the zone and zoneless
providers are used together.

PR Close #55410
2024-05-07 13:37:42 -07:00

53 lines
1.3 KiB
TypeScript

/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import {PlatformLocation} from '@angular/common';
import {MockPlatformLocation} from '@angular/common/testing';
import {
APP_ID,
createPlatformFactory,
NgModule,
PLATFORM_INITIALIZER,
platformCore,
StaticProvider,
ɵinternalProvideZoneChangeDetection as internalProvideZoneChangeDetection,
} from '@angular/core';
import {BrowserModule, ɵBrowserDomAdapter as BrowserDomAdapter} from '@angular/platform-browser';
function initBrowserTests() {
BrowserDomAdapter.makeCurrent();
}
const _TEST_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [
{provide: PLATFORM_INITIALIZER, useValue: initBrowserTests, multi: true},
];
/**
* Platform for testing
*
* @publicApi
*/
export const platformBrowserTesting = createPlatformFactory(
platformCore,
'browserTesting',
_TEST_BROWSER_PLATFORM_PROVIDERS,
);
/**
* NgModule for testing.
*
* @publicApi
*/
@NgModule({
exports: [BrowserModule],
providers: [
{provide: APP_ID, useValue: 'a'},
internalProvideZoneChangeDetection({}),
{provide: PlatformLocation, useClass: MockPlatformLocation},
],
})
export class BrowserTestingModule {}