UNPKG

11.1 kBJavaScriptView Raw
1/**
2 * @license Angular v8.2.9
3 * (c) 2010-2019 Google LLC. https://angular.io/
4 * License: MIT
5 */
6
7import { Injectable, Inject, ɵstringify, NgModule, Directive, Component, Pipe, createPlatformFactory, COMPILER_OPTIONS, Injector, CompilerFactory } from '@angular/core';
8import { TestComponentRenderer, ɵMetadataOverrider, ɵTestingCompilerFactory } from '@angular/core/testing';
9import { ɵplatformCoreDynamic, ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS } from '@angular/platform-browser-dynamic';
10import { BrowserTestingModule } from '@angular/platform-browser/testing';
11import { DOCUMENT } from '@angular/common';
12import { ɵgetDOM } from '@angular/platform-browser';
13import { CompileReflector, PipeResolver, DirectiveResolver, NgModuleResolver, ERROR_COMPONENT_TYPE } from '@angular/compiler';
14import { MockPipeResolver, MockDirectiveResolver, MockNgModuleResolver } from '@angular/compiler/testing';
15
16/**
17 * @fileoverview added by tsickle
18 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
19 */
20/**
21 * A DOM based implementation of the TestComponentRenderer.
22 */
23class DOMTestComponentRenderer extends TestComponentRenderer {
24 /**
25 * @param {?} _doc
26 */
27 constructor(_doc) {
28 super();
29 this._doc = _doc;
30 }
31 /**
32 * @param {?} rootElId
33 * @return {?}
34 */
35 insertRootElement(rootElId) {
36 /** @type {?} */
37 const rootEl = (/** @type {?} */ (ɵgetDOM().firstChild(ɵgetDOM().content(ɵgetDOM().createTemplate(`<div id="${rootElId}"></div>`)))));
38 // TODO(juliemr): can/should this be optional?
39 /** @type {?} */
40 const oldRoots = ɵgetDOM().querySelectorAll(this._doc, '[id^=root]');
41 for (let i = 0; i < oldRoots.length; i++) {
42 ɵgetDOM().remove(oldRoots[i]);
43 }
44 ɵgetDOM().appendChild(this._doc.body, rootEl);
45 }
46}
47DOMTestComponentRenderer.decorators = [
48 { type: Injectable }
49];
50/** @nocollapse */
51DOMTestComponentRenderer.ctorParameters = () => [
52 { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
53];
54if (false) {
55 /**
56 * @type {?}
57 * @private
58 */
59 DOMTestComponentRenderer.prototype._doc;
60}
61
62/**
63 * @fileoverview added by tsickle
64 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
65 */
66
67/**
68 * @fileoverview added by tsickle
69 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
70 */
71/** @type {?} */
72const COMPILER_PROVIDERS = [
73 { provide: MockPipeResolver, deps: [CompileReflector] },
74 { provide: PipeResolver, useExisting: MockPipeResolver },
75 { provide: MockDirectiveResolver, deps: [CompileReflector] },
76 { provide: DirectiveResolver, useExisting: MockDirectiveResolver },
77 { provide: MockNgModuleResolver, deps: [CompileReflector] },
78 { provide: NgModuleResolver, useExisting: MockNgModuleResolver },
79];
80class TestingCompilerFactoryImpl {
81 /**
82 * @param {?} _injector
83 * @param {?} _compilerFactory
84 */
85 constructor(_injector, _compilerFactory) {
86 this._injector = _injector;
87 this._compilerFactory = _compilerFactory;
88 }
89 /**
90 * @param {?} options
91 * @return {?}
92 */
93 createTestingCompiler(options) {
94 /** @type {?} */
95 const compiler = (/** @type {?} */ (this._compilerFactory.createCompiler(options)));
96 return new TestingCompilerImpl(compiler, compiler.injector.get(MockDirectiveResolver), compiler.injector.get(MockPipeResolver), compiler.injector.get(MockNgModuleResolver));
97 }
98}
99if (false) {
100 /**
101 * @type {?}
102 * @private
103 */
104 TestingCompilerFactoryImpl.prototype._injector;
105 /**
106 * @type {?}
107 * @private
108 */
109 TestingCompilerFactoryImpl.prototype._compilerFactory;
110}
111class TestingCompilerImpl {
112 /**
113 * @param {?} _compiler
114 * @param {?} _directiveResolver
115 * @param {?} _pipeResolver
116 * @param {?} _moduleResolver
117 */
118 constructor(_compiler, _directiveResolver, _pipeResolver, _moduleResolver) {
119 this._compiler = _compiler;
120 this._directiveResolver = _directiveResolver;
121 this._pipeResolver = _pipeResolver;
122 this._moduleResolver = _moduleResolver;
123 this._overrider = new ɵMetadataOverrider();
124 }
125 /**
126 * @return {?}
127 */
128 get injector() { return this._compiler.injector; }
129 /**
130 * @template T
131 * @param {?} moduleType
132 * @return {?}
133 */
134 compileModuleSync(moduleType) {
135 return this._compiler.compileModuleSync(moduleType);
136 }
137 /**
138 * @template T
139 * @param {?} moduleType
140 * @return {?}
141 */
142 compileModuleAsync(moduleType) {
143 return this._compiler.compileModuleAsync(moduleType);
144 }
145 /**
146 * @template T
147 * @param {?} moduleType
148 * @return {?}
149 */
150 compileModuleAndAllComponentsSync(moduleType) {
151 return this._compiler.compileModuleAndAllComponentsSync(moduleType);
152 }
153 /**
154 * @template T
155 * @param {?} moduleType
156 * @return {?}
157 */
158 compileModuleAndAllComponentsAsync(moduleType) {
159 return this._compiler.compileModuleAndAllComponentsAsync(moduleType);
160 }
161 /**
162 * @template T
163 * @param {?} component
164 * @return {?}
165 */
166 getComponentFactory(component) {
167 return this._compiler.getComponentFactory(component);
168 }
169 /**
170 * @param {?} type
171 * @return {?}
172 */
173 checkOverrideAllowed(type) {
174 if (this._compiler.hasAotSummary(type)) {
175 throw new Error(`${ɵstringify(type)} was AOT compiled, so its metadata cannot be changed.`);
176 }
177 }
178 /**
179 * @param {?} ngModule
180 * @param {?} override
181 * @return {?}
182 */
183 overrideModule(ngModule, override) {
184 this.checkOverrideAllowed(ngModule);
185 /** @type {?} */
186 const oldMetadata = this._moduleResolver.resolve(ngModule, false);
187 this._moduleResolver.setNgModule(ngModule, this._overrider.overrideMetadata(NgModule, oldMetadata, override));
188 this.clearCacheFor(ngModule);
189 }
190 /**
191 * @param {?} directive
192 * @param {?} override
193 * @return {?}
194 */
195 overrideDirective(directive, override) {
196 this.checkOverrideAllowed(directive);
197 /** @type {?} */
198 const oldMetadata = this._directiveResolver.resolve(directive, false);
199 this._directiveResolver.setDirective(directive, this._overrider.overrideMetadata(Directive, (/** @type {?} */ (oldMetadata)), override));
200 this.clearCacheFor(directive);
201 }
202 /**
203 * @param {?} component
204 * @param {?} override
205 * @return {?}
206 */
207 overrideComponent(component, override) {
208 this.checkOverrideAllowed(component);
209 /** @type {?} */
210 const oldMetadata = this._directiveResolver.resolve(component, false);
211 this._directiveResolver.setDirective(component, this._overrider.overrideMetadata(Component, (/** @type {?} */ (oldMetadata)), override));
212 this.clearCacheFor(component);
213 }
214 /**
215 * @param {?} pipe
216 * @param {?} override
217 * @return {?}
218 */
219 overridePipe(pipe, override) {
220 this.checkOverrideAllowed(pipe);
221 /** @type {?} */
222 const oldMetadata = this._pipeResolver.resolve(pipe, false);
223 this._pipeResolver.setPipe(pipe, this._overrider.overrideMetadata(Pipe, oldMetadata, override));
224 this.clearCacheFor(pipe);
225 }
226 /**
227 * @param {?} summaries
228 * @return {?}
229 */
230 loadAotSummaries(summaries) { this._compiler.loadAotSummaries(summaries); }
231 /**
232 * @return {?}
233 */
234 clearCache() { this._compiler.clearCache(); }
235 /**
236 * @param {?} type
237 * @return {?}
238 */
239 clearCacheFor(type) { this._compiler.clearCacheFor(type); }
240 /**
241 * @param {?} error
242 * @return {?}
243 */
244 getComponentFromError(error) { return ((/** @type {?} */ (error)))[ERROR_COMPONENT_TYPE] || null; }
245 /**
246 * @param {?} moduleType
247 * @return {?}
248 */
249 getModuleId(moduleType) {
250 return this._moduleResolver.resolve(moduleType, true).id;
251 }
252}
253if (false) {
254 /**
255 * @type {?}
256 * @private
257 */
258 TestingCompilerImpl.prototype._overrider;
259 /**
260 * @type {?}
261 * @private
262 */
263 TestingCompilerImpl.prototype._compiler;
264 /**
265 * @type {?}
266 * @private
267 */
268 TestingCompilerImpl.prototype._directiveResolver;
269 /**
270 * @type {?}
271 * @private
272 */
273 TestingCompilerImpl.prototype._pipeResolver;
274 /**
275 * @type {?}
276 * @private
277 */
278 TestingCompilerImpl.prototype._moduleResolver;
279}
280
281/**
282 * @fileoverview added by tsickle
283 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
284 */
285const ɵ0 = { providers: COMPILER_PROVIDERS };
286/**
287 * Platform for dynamic tests
288 *
289 * \@publicApi
290 * @type {?}
291 */
292const platformCoreDynamicTesting = createPlatformFactory(ɵplatformCoreDynamic, 'coreDynamicTesting', [
293 { provide: COMPILER_OPTIONS, useValue: ɵ0, multi: true }, {
294 provide: ɵTestingCompilerFactory,
295 useClass: TestingCompilerFactoryImpl,
296 deps: [Injector, CompilerFactory]
297 }
298]);
299
300/**
301 * @fileoverview added by tsickle
302 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
303 */
304
305/**
306 * @fileoverview added by tsickle
307 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
308 */
309/**
310 * \@publicApi
311 * @type {?}
312 */
313const platformBrowserDynamicTesting = createPlatformFactory(platformCoreDynamicTesting, 'browserDynamicTesting', ɵINTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS);
314/**
315 * NgModule for testing.
316 *
317 * \@publicApi
318 */
319class BrowserDynamicTestingModule {
320}
321BrowserDynamicTestingModule.decorators = [
322 { type: NgModule, args: [{
323 exports: [BrowserTestingModule],
324 providers: [
325 { provide: TestComponentRenderer, useClass: DOMTestComponentRenderer },
326 ]
327 },] }
328];
329
330/**
331 * @fileoverview added by tsickle
332 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
333 */
334
335/**
336 * @fileoverview added by tsickle
337 * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
338 */
339
340/**
341 * Generated bundle index. Do not edit.
342 */
343
344export { COMPILER_PROVIDERS as ɵangular_packages_platform_browser_dynamic_testing_testing_a, TestingCompilerFactoryImpl as ɵangular_packages_platform_browser_dynamic_testing_testing_b, platformBrowserDynamicTesting, BrowserDynamicTestingModule, DOMTestComponentRenderer as ɵDOMTestComponentRenderer, platformCoreDynamicTesting as ɵplatformCoreDynamicTesting };
345//# sourceMappingURL=testing.js.map