@angular/core 12.1.0-next.3 → 12.1.0

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.
Files changed (58) hide show
  1. package/bundles/core-testing.umd.js +229 -101
  2. package/bundles/core-testing.umd.js.map +1 -1
  3. package/bundles/core.umd.js +65 -28
  4. package/bundles/core.umd.js.map +1 -1
  5. package/core.d.ts +269 -19
  6. package/core.metadata.json +1 -1
  7. package/esm2015/src/application_ref.js +29 -8
  8. package/esm2015/src/change_detection/differs/iterable_differs.js +1 -1
  9. package/esm2015/src/debug/debug_node.js +1 -1
  10. package/esm2015/src/di/injectable.js +1 -1
  11. package/esm2015/src/di/injector_marker.js +1 -1
  12. package/esm2015/src/linker/component_factory_resolver.js +4 -1
  13. package/esm2015/src/linker/element_ref.js +1 -1
  14. package/esm2015/src/linker/query_list.js +2 -1
  15. package/esm2015/src/metadata/di.js +1 -1
  16. package/esm2015/src/metadata/do_boostrap.js +1 -1
  17. package/esm2015/src/metadata/ng_module.js +1 -1
  18. package/esm2015/src/metadata/schema.js +5 -1
  19. package/esm2015/src/render3/definition.js +16 -16
  20. package/esm2015/src/render3/node_assert.js +1 -1
  21. package/esm2015/src/util/assert.js +1 -1
  22. package/esm2015/src/util/decorators.js +1 -1
  23. package/esm2015/src/util/dom.js +1 -1
  24. package/esm2015/src/version.js +1 -1
  25. package/esm2015/src/view/util.js +3 -1
  26. package/esm2015/testing/src/r3_test_bed.js +84 -7
  27. package/esm2015/testing/src/test_bed.js +103 -42
  28. package/esm2015/testing/src/test_bed_common.js +7 -1
  29. package/esm2015/testing/src/test_hooks.js +45 -0
  30. package/esm2015/testing/src/testing.js +3 -3
  31. package/esm2015/testing/src/testing_internal.js +1 -182
  32. package/fesm2015/core.js +55 -24
  33. package/fesm2015/core.js.map +1 -1
  34. package/fesm2015/testing.js +206 -77
  35. package/fesm2015/testing.js.map +1 -1
  36. package/package.json +2 -2
  37. package/schematics/migrations/can-activate-with-redirect-to/util.js +1 -1
  38. package/schematics/migrations/can-activate-with-redirect-to/util.mjs +1 -1
  39. package/schematics/migrations/initial-navigation/collector.js +3 -2
  40. package/schematics/migrations/initial-navigation/collector.mjs +3 -2
  41. package/schematics/migrations/navigation-extras-omissions/util.js +2 -3
  42. package/schematics/migrations/navigation-extras-omissions/util.mjs +2 -3
  43. package/schematics/migrations/relative-link-resolution/collector.js +3 -2
  44. package/schematics/migrations/relative-link-resolution/collector.mjs +3 -2
  45. package/schematics/migrations/relative-link-resolution/update_recorder.js +1 -1
  46. package/schematics/migrations/relative-link-resolution/update_recorder.mjs +1 -1
  47. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.js +2 -2
  48. package/schematics/migrations/static-queries/strategies/usage_strategy/declaration_usage_visitor.mjs +2 -2
  49. package/schematics/migrations/xhr-factory/index.js +1 -1
  50. package/schematics/migrations/xhr-factory/index.mjs +1 -1
  51. package/schematics/utils/typescript/imports.js +2 -2
  52. package/schematics/utils/typescript/imports.mjs +2 -2
  53. package/src/r3_symbols.d.ts +4 -1
  54. package/testing/testing.d.ts +63 -10
  55. package/testing/testing.metadata.json +1 -1
  56. package/testing.d.ts +1 -1
  57. package/esm2015/testing/src/async_test_completer.js +0 -28
  58. package/esm2015/testing/src/before_each.js +0 -33
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v12.1.0-next.3
2
+ * @license Angular v12.1.0
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -165,6 +165,9 @@ declare abstract class ComponentFactory<C> {
165
165
  * then use the factory's `create()` method to create a component of that type.
166
166
  *
167
167
  * @see [Dynamic Components](guide/dynamic-component-loader)
168
+ * @see [Usage Example](guide/dynamic-component-loader#resolving-components)
169
+ * @see <live-example name="dynamic-component-loader" noDownload></live-example>
170
+ of the code in this cookbook
168
171
  * @publicApi
169
172
  */
170
173
  declare abstract class ComponentFactoryResolver {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v12.1.0-next.3
2
+ * @license Angular v12.1.0
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -205,11 +205,6 @@ export declare const getTestBed: () => TestBed;
205
205
  * })
206
206
  * ```
207
207
  *
208
- * Notes:
209
- * - inject is currently a function because of some Traceur limitation the syntax should
210
- * eventually
211
- * becomes `it('...', @Inject (object: AClass, async: AsyncTestCompleter) => { ... });`
212
- *
213
208
  * @publicApi
214
209
  */
215
210
  export declare function inject(tokens: any[], fn: Function): () => any;
@@ -236,6 +231,17 @@ export declare type MetadataOverride<T> = {
236
231
  set?: Partial<T>;
237
232
  };
238
233
 
234
+ /**
235
+ * Object used to configure the test module teardown behavior in `TestBed`.
236
+ * @publicApi
237
+ */
238
+ export declare interface ModuleTeardownOptions {
239
+ /** Whether the test module should be destroyed after every test. */
240
+ destroyAfterEach: boolean;
241
+ /** Whether errors during test module destruction should be re-thrown. Defaults to `true`. */
242
+ rethrowErrors?: boolean;
243
+ }
244
+
239
245
  /**
240
246
  * Clears out the shared fake async zone for a test.
241
247
  * To be called in a global `beforeEach`.
@@ -261,6 +267,7 @@ export declare interface TestBed {
261
267
  * Test modules and platforms for individual platforms are available from
262
268
  * '@angular/<platform_name>/testing'.
263
269
  */
270
+ initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, options?: TestEnvironmentOptions): void;
264
271
  initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void;
265
272
  /**
266
273
  * Reset the providers for the test injector.
@@ -324,6 +331,9 @@ export declare const TestBed: TestBedStatic;
324
331
  */
325
332
  export declare interface TestBedStatic {
326
333
  new (...args: any[]): TestBed;
334
+ initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, options?: {
335
+ teardown?: ModuleTeardownOptions;
336
+ }): TestBed;
327
337
  initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): TestBed;
328
338
  /**
329
339
  * Reset the providers for the test injector.
@@ -394,6 +404,15 @@ export declare interface TestBedStatic {
394
404
  */
395
405
  export declare class TestComponentRenderer {
396
406
  insertRootElement(rootElementId: string): void;
407
+ removeAllRootElements?(): void;
408
+ }
409
+
410
+ /**
411
+ * @publicApi
412
+ */
413
+ export declare interface TestEnvironmentOptions {
414
+ aotSummaries?: () => any[];
415
+ teardown?: ModuleTeardownOptions;
397
416
  }
398
417
 
399
418
  /**
@@ -405,6 +424,7 @@ export declare type TestModuleMetadata = {
405
424
  imports?: any[];
406
425
  schemas?: Array<SchemaMetadata | any[]>;
407
426
  aotSummaries?: () => any[];
427
+ teardown?: ModuleTeardownOptions;
408
428
  };
409
429
 
410
430
  /**
@@ -513,6 +533,16 @@ export declare function withModule(moduleDef: TestModuleMetadata, fn: Function):
513
533
  * according to the compiler used.
514
534
  */
515
535
  export declare class ɵangular_packages_core_testing_testing_a implements TestBed {
536
+ /**
537
+ * Teardown options that have been configured at the environment level.
538
+ * Used as a fallback if no instance-level options have been provided.
539
+ */
540
+ private static _environmentTeardownOptions;
541
+ /**
542
+ * Teardown options that have been configured at the `TestBed` instance level.
543
+ * These options take precedence over the environemnt-level ones.
544
+ */
545
+ private _instanceTeardownOptions;
516
546
  /**
517
547
  * Initialize the environment for testing with a compiler factory, a PlatformRef, and an
518
548
  * angular module. These are common to every test in the suite.
@@ -524,7 +554,7 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
524
554
  * Test modules and platforms for individual platforms are available from
525
555
  * '@angular/<platform_name>/testing'.
526
556
  */
527
- static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): ɵangular_packages_core_testing_testing_a;
557
+ static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, summariesOrOptions?: TestEnvironmentOptions | (() => any[])): ɵangular_packages_core_testing_testing_a;
528
558
  /**
529
559
  * Reset the providers for the test injector.
530
560
  */
@@ -583,6 +613,8 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
583
613
  */
584
614
  static get(token: any, notFoundValue?: any): any;
585
615
  static createComponent<T>(component: Type<T>): ComponentFixture<T>;
616
+ static shouldTearDownTestingModule(): boolean;
617
+ static tearDownTestingModule(): void;
586
618
  private _instantiated;
587
619
  private _compiler;
588
620
  private _moduleRef;
@@ -615,7 +647,7 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
615
647
  * Test modules and platforms for individual platforms are available from
616
648
  * '@angular/<platform_name>/testing'.
617
649
  */
618
- initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void;
650
+ initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, summariesOrOptions?: TestEnvironmentOptions | (() => any[])): void;
619
651
  /**
620
652
  * Reset the providers for the test injector.
621
653
  */
@@ -654,6 +686,10 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
654
686
  private overrideProviderImpl;
655
687
  overrideTemplateUsingTestingModule(component: Type<any>, template: string): void;
656
688
  createComponent<T>(component: Type<T>): ComponentFixture<T>;
689
+ private destroyActiveFixtures;
690
+ private shouldRethrowTeardownErrors;
691
+ shouldTearDownTestingModule(): boolean;
692
+ tearDownTestingModule(): void;
657
693
  }
658
694
 
659
695
  /**
@@ -667,6 +703,16 @@ export declare class ɵangular_packages_core_testing_testing_a implements TestBe
667
703
  * according to the compiler used.
668
704
  */
669
705
  export declare class ɵangular_packages_core_testing_testing_b implements TestBed {
706
+ /**
707
+ * Teardown options that have been configured at the environment level.
708
+ * Used as a fallback if no instance-level options have been provided.
709
+ */
710
+ private static _environmentTeardownOptions;
711
+ /**
712
+ * Teardown options that have been configured at the `TestBed` instance level.
713
+ * These options take precedence over the environemnt-level ones.
714
+ */
715
+ private _instanceTeardownOptions;
670
716
  /**
671
717
  * Initialize the environment for testing with a compiler factory, a PlatformRef, and an
672
718
  * angular module. These are common to every test in the suite.
@@ -680,7 +726,7 @@ export declare class ɵangular_packages_core_testing_testing_b implements TestBe
680
726
  *
681
727
  * @publicApi
682
728
  */
683
- static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): TestBed;
729
+ static initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, summariesOrOptions?: TestEnvironmentOptions | (() => any[])): TestBed;
684
730
  /**
685
731
  * Reset the providers for the test injector.
686
732
  *
@@ -729,6 +775,8 @@ export declare class ɵangular_packages_core_testing_testing_b implements TestBe
729
775
  static get(token: any, notFoundValue?: any): any;
730
776
  static createComponent<T>(component: Type<T>): ComponentFixture<T>;
731
777
  static resetTestingModule(): TestBedStatic;
778
+ static shouldTearDownTestingModule(): boolean;
779
+ static tearDownTestingModule(): void;
732
780
  platform: PlatformRef;
733
781
  ngModule: Type<any> | Type<any>[];
734
782
  private _compiler;
@@ -748,7 +796,9 @@ export declare class ɵangular_packages_core_testing_testing_b implements TestBe
748
796
  *
749
797
  * @publicApi
750
798
  */
751
- initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, aotSummaries?: () => any[]): void;
799
+ initTestEnvironment(ngModule: Type<any> | Type<any>[], platform: PlatformRef, summariesOrOptions?: {
800
+ teardown?: ModuleTeardownOptions;
801
+ } | (() => any[])): void;
752
802
  /**
753
803
  * Reset the providers for the test injector.
754
804
  *
@@ -798,6 +848,9 @@ export declare class ɵangular_packages_core_testing_testing_b implements TestBe
798
848
  */
799
849
  private checkGlobalCompilationFinished;
800
850
  private destroyActiveFixtures;
851
+ private shouldRethrowTeardownErrors;
852
+ shouldTearDownTestingModule(): boolean;
853
+ tearDownTestingModule(): void;
801
854
  }
802
855
 
803
856
  export declare function ɵangular_packages_core_testing_testing_c(): ɵangular_packages_core_testing_testing_b;
@@ -1 +1 @@
1
- {"__symbolic":"module","version":4,"metadata":{"ɵangular_packages_core_testing_testing_a":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"overrideProviderImpl":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}]},"statics":{"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":641,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":230,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":231,"character":27},"member":"Default"}],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":641,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":641,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}}}},"waitForAsync":{"__symbolic":"function"},"async":{"__symbolic":"function","parameters":["fn"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"waitForAsync"},"arguments":[{"__symbolic":"reference","name":"fn"}]}},"ComponentFixture":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ComponentRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":53,"character":40,"context":{"typeName":"T"},"module":"./testing"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":53,"character":59},{"__symbolic":"reference","name":"boolean"}]}],"_tick":[{"__symbolic":"method"}],"detectChanges":[{"__symbolic":"method"}],"checkNoChanges":[{"__symbolic":"method"}],"autoDetectChanges":[{"__symbolic":"method"}],"isStable":[{"__symbolic":"method"}],"whenStable":[{"__symbolic":"method"}],"_getRenderer":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"resetFakeAsyncZone":{"__symbolic":"function"},"fakeAsync":{"__symbolic":"function"},"tick":{"__symbolic":"function"},"flush":{"__symbolic":"function"},"discardPeriodicTasks":{"__symbolic":"function"},"flushMicrotasks":{"__symbolic":"function"},"TestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":628,"character":4},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"},"elseExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_a"}},"getTestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":637,"character":41},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":641,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":694,"character":34,"module":"./testing"}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"},"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":27,"character":8},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":32,"character":44},"arguments":["ComponentFixtureNoNgZone"]},"TestModuleMetadata":{"__symbolic":"interface"},"TestBedStatic":{"__symbolic":"interface"},"MetadataOverride":{"__symbolic":"interface"},"ɵMetadataOverrider":{"__symbolic":"class","members":{"overrideMetadata":[{"__symbolic":"method"}]}},"ɵTestingCompiler":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":22,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1}}],"members":{"overrideModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"loadAotSummaries":[{"__symbolic":"method"}],"getComponentFactory":[{"__symbolic":"method"}],"getComponentFromError":[{"__symbolic":"method"}]}},"ɵTestingCompilerFactory":{"__symbolic":"class","members":{"createTestingCompiler":[{"__symbolic":"method"}]}},"ɵangular_packages_core_testing_testing_b":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"assertNotInstantiated":[{"__symbolic":"method"}],"checkGlobalCompilationFinished":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}]},"statics":{"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":170,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":171,"character":27},"member":"Default"}],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}}}},"ɵangular_packages_core_testing_testing_c":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":{"__symbolic":"error","message":"Reference to a local symbol","line":418,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"error","message":"Reference to a local symbol","line":418,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"}}}}}},"origins":{"ɵangular_packages_core_testing_testing_a":"./testing","waitForAsync":"./testing","async":"./testing","ComponentFixture":"./testing","resetFakeAsyncZone":"./testing","fakeAsync":"./testing","tick":"./testing","flush":"./testing","discardPeriodicTasks":"./testing","flushMicrotasks":"./testing","TestBed":"./testing","getTestBed":"./testing","inject":"./testing","InjectSetupWrapper":"./testing","withModule":"./testing","TestComponentRenderer":"./testing","ComponentFixtureAutoDetect":"./testing","ComponentFixtureNoNgZone":"./testing","TestModuleMetadata":"./testing","TestBedStatic":"./testing","__core_private_testing_placeholder__":"./testing","MetadataOverride":"./testing","ɵMetadataOverrider":"./testing","ɵTestingCompiler":"./testing","ɵTestingCompilerFactory":"./testing","ɵangular_packages_core_testing_testing_b":"./testing","ɵangular_packages_core_testing_testing_c":"./testing"},"importAs":"@angular/core/testing"}
1
+ {"__symbolic":"module","version":4,"metadata":{"ɵangular_packages_core_testing_testing_a":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"_initIfNeeded":[{"__symbolic":"method"}],"_createCompilerAndModule":[{"__symbolic":"method"}],"_assertNotInstantiated":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"overrideProviderImpl":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}],"shouldRethrowTeardownErrors":[{"__symbolic":"method"}],"shouldTearDownTestingModule":[{"__symbolic":"method"}],"tearDownTestingModule":[{"__symbolic":"method"}]},"statics":{"_environmentTeardownOptions":{"__symbolic":"error","message":"Variable not initialized","line":106,"character":17},"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"getTestBed"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":244,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":245,"character":27},"member":"Default"}],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"shouldTearDownTestingModule":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}}}},"waitForAsync":{"__symbolic":"function"},"async":{"__symbolic":"function","parameters":["fn"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"waitForAsync"},"arguments":[{"__symbolic":"reference","name":"fn"}]}},"ComponentFixture":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ComponentRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":53,"character":40,"context":{"typeName":"T"},"module":"./testing"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":53,"character":59},{"__symbolic":"reference","name":"boolean"}]}],"_tick":[{"__symbolic":"method"}],"detectChanges":[{"__symbolic":"method"}],"checkNoChanges":[{"__symbolic":"method"}],"autoDetectChanges":[{"__symbolic":"method"}],"isStable":[{"__symbolic":"method"}],"whenStable":[{"__symbolic":"method"}],"_getRenderer":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"resetFakeAsyncZone":{"__symbolic":"function"},"fakeAsync":{"__symbolic":"function"},"tick":{"__symbolic":"function"},"flush":{"__symbolic":"function"},"discardPeriodicTasks":{"__symbolic":"function"},"flushMicrotasks":{"__symbolic":"function"},"TestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":730,"character":4},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"},"elseExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_a"}},"getTestBed":{"__symbolic":"if","condition":{"__symbolic":"reference","module":"@angular/core","name":"ɵivyEnabled","line":739,"character":41},"thenExpression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"},"elseExpression":{"__symbolic":"error","message":"Reference to a non-exported function","line":743,"character":9,"context":{"name":"_getTestBedViewEngine"},"module":"./testing"}},"inject":{"__symbolic":"function"},"InjectSetupWrapper":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":778,"character":34,"module":"./testing"}]}],"_addModule":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"}]}},"withModule":{"__symbolic":"function"},"TestComponentRenderer":{"__symbolic":"class","members":{"insertRootElement":[{"__symbolic":"method"}],"removeAllRootElements":[{"__symbolic":"method"}]}},"ComponentFixtureAutoDetect":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":34,"character":8},"arguments":["ComponentFixtureAutoDetect"]},"ComponentFixtureNoNgZone":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":39,"character":44},"arguments":["ComponentFixtureNoNgZone"]},"TestModuleMetadata":{"__symbolic":"interface"},"TestEnvironmentOptions":{"__symbolic":"interface"},"ModuleTeardownOptions":{"__symbolic":"interface"},"TestBedStatic":{"__symbolic":"interface"},"MetadataOverride":{"__symbolic":"interface"},"ɵMetadataOverrider":{"__symbolic":"class","members":{"overrideMetadata":[{"__symbolic":"method"}]}},"ɵTestingCompiler":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/core","name":"Compiler","line":22,"character":37},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1}}],"members":{"overrideModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"loadAotSummaries":[{"__symbolic":"method"}],"getComponentFactory":[{"__symbolic":"method"}],"getComponentFromError":[{"__symbolic":"method"}]}},"ɵTestingCompilerFactory":{"__symbolic":"class","members":{"createTestingCompiler":[{"__symbolic":"method"}]}},"ɵangular_packages_core_testing_testing_b":{"__symbolic":"class","members":{"initTestEnvironment":[{"__symbolic":"method"}],"resetTestEnvironment":[{"__symbolic":"method"}],"resetTestingModule":[{"__symbolic":"method"}],"configureCompiler":[{"__symbolic":"method"}],"configureTestingModule":[{"__symbolic":"method"}],"compileComponents":[{"__symbolic":"method"}],"inject":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"get":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"execute":[{"__symbolic":"method"}],"overrideModule":[{"__symbolic":"method"}],"overrideComponent":[{"__symbolic":"method"}],"overrideTemplateUsingTestingModule":[{"__symbolic":"method"}],"overrideDirective":[{"__symbolic":"method"}],"overridePipe":[{"__symbolic":"method"}],"overrideProvider":[{"__symbolic":"method"}],"createComponent":[{"__symbolic":"method"}],"assertNotInstantiated":[{"__symbolic":"method"}],"checkGlobalCompilationFinished":[{"__symbolic":"method"}],"destroyActiveFixtures":[{"__symbolic":"method"}],"shouldRethrowTeardownErrors":[{"__symbolic":"method"}],"shouldTearDownTestingModule":[{"__symbolic":"method"}],"tearDownTestingModule":[{"__symbolic":"method"}]},"statics":{"_environmentTeardownOptions":{"__symbolic":"error","message":"Variable not initialized","line":58,"character":17},"compileComponents":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"compileComponents"}}},"inject":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"get":{"__symbolic":"function","parameters":["token","notFoundValue","flags"],"defaults":[null,{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":183,"character":39},"member":"THROW_IF_NOT_FOUND"},{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectFlags","line":184,"character":27},"member":"Default"}],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"inject"},"arguments":[{"__symbolic":"reference","name":"token"},{"__symbolic":"reference","name":"notFoundValue"},{"__symbolic":"reference","name":"flags"}]}},"createComponent":{"__symbolic":"function","parameters":["component"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"createComponent"},"arguments":[{"__symbolic":"reference","name":"component"}]}},"shouldTearDownTestingModule":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_c"}},"member":"shouldTearDownTestingModule"}}}}},"ɵangular_packages_core_testing_testing_c":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"=","left":{"__symbolic":"error","message":"Reference to a local symbol","line":515,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"error","message":"Reference to a local symbol","line":515,"character":4,"context":{"name":"testBed"},"module":"./testing"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵangular_packages_core_testing_testing_b"}}}}}},"origins":{"ɵangular_packages_core_testing_testing_a":"./testing","waitForAsync":"./testing","async":"./testing","ComponentFixture":"./testing","resetFakeAsyncZone":"./testing","fakeAsync":"./testing","tick":"./testing","flush":"./testing","discardPeriodicTasks":"./testing","flushMicrotasks":"./testing","TestBed":"./testing","getTestBed":"./testing","inject":"./testing","InjectSetupWrapper":"./testing","withModule":"./testing","TestComponentRenderer":"./testing","ComponentFixtureAutoDetect":"./testing","ComponentFixtureNoNgZone":"./testing","TestModuleMetadata":"./testing","TestEnvironmentOptions":"./testing","ModuleTeardownOptions":"./testing","TestBedStatic":"./testing","__core_private_testing_placeholder__":"./testing","MetadataOverride":"./testing","ɵMetadataOverrider":"./testing","ɵTestingCompiler":"./testing","ɵTestingCompilerFactory":"./testing","ɵangular_packages_core_testing_testing_b":"./testing","ɵangular_packages_core_testing_testing_c":"./testing"},"importAs":"@angular/core/testing"}
package/testing.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v12.1.0-next.3
2
+ * @license Angular v12.1.0
3
3
  * (c) 2010-2021 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1,28 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /**
9
- * Injectable completer that allows signaling completion of an asynchronous test. Used internally.
10
- */
11
- export class AsyncTestCompleter {
12
- constructor() {
13
- this._promise = new Promise((res, rej) => {
14
- this._resolve = res;
15
- this._reject = rej;
16
- });
17
- }
18
- done(value) {
19
- this._resolve(value);
20
- }
21
- fail(error, stackTrace) {
22
- this._reject(error);
23
- }
24
- get promise() {
25
- return this._promise;
26
- }
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmNfdGVzdF9jb21wbGV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3Rlc3Rpbmcvc3JjL2FzeW5jX3Rlc3RfY29tcGxldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUtVLGFBQVEsR0FBaUIsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFZTCxDQUFDO0lBWEMsSUFBSSxDQUFDLEtBQVc7UUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBVyxFQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBJbmplY3RhYmxlIGNvbXBsZXRlciB0aGF0IGFsbG93cyBzaWduYWxpbmcgY29tcGxldGlvbiBvZiBhbiBhc3luY2hyb25vdXMgdGVzdC4gVXNlZCBpbnRlcm5hbGx5LlxuICovXG5leHBvcnQgY2xhc3MgQXN5bmNUZXN0Q29tcGxldGVyIHtcbiAgLy8gVE9ETyhpc3N1ZS8yNDU3MSk6IHJlbW92ZSAnIScuXG4gIHByaXZhdGUgX3Jlc29sdmUhOiAocmVzdWx0OiBhbnkpID0+IHZvaWQ7XG4gIC8vIFRPRE8oaXNzdWUvMjQ1NzEpOiByZW1vdmUgJyEnLlxuICBwcml2YXRlIF9yZWplY3QhOiAoZXJyOiBhbnkpID0+IHZvaWQ7XG4gIHByaXZhdGUgX3Byb21pc2U6IFByb21pc2U8YW55PiA9IG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4ge1xuICAgIHRoaXMuX3Jlc29sdmUgPSByZXM7XG4gICAgdGhpcy5fcmVqZWN0ID0gcmVqO1xuICB9KTtcbiAgZG9uZSh2YWx1ZT86IGFueSkge1xuICAgIHRoaXMuX3Jlc29sdmUodmFsdWUpO1xuICB9XG5cbiAgZmFpbChlcnJvcj86IGFueSwgc3RhY2tUcmFjZT86IHN0cmluZykge1xuICAgIHRoaXMuX3JlamVjdChlcnJvcik7XG4gIH1cblxuICBnZXQgcHJvbWlzZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9wcm9taXNlO1xuICB9XG59XG4iXX0=
@@ -1,33 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /**
9
- * Public Test Library for unit testing Angular applications. Assumes that you are running
10
- * with Jasmine, Mocha, or a similar framework which exports a beforeEach function and
11
- * allows tests to be asynchronous by either returning a promise or using a 'done' parameter.
12
- */
13
- import { resetFakeAsyncZone } from './fake_async';
14
- import { TestBed } from './test_bed';
15
- const _global = (typeof window === 'undefined' ? global : window);
16
- // Reset the test providers and the fake async zone before each test.
17
- if (_global.beforeEach) {
18
- _global.beforeEach(() => {
19
- TestBed.resetTestingModule();
20
- resetFakeAsyncZone();
21
- });
22
- }
23
- /**
24
- * This API should be removed. But doing so seems to break `google3` and so it requires a bit of
25
- * investigation.
26
- *
27
- * A work around is to mark it as `@codeGenApi` for now and investigate later.
28
- *
29
- * @codeGenApi
30
- */
31
- // TODO(iminar): Remove this code in a safe way.
32
- export const __core_private_testing_placeholder__ = '';
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlX2VhY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3Rlc3Rpbmcvc3JjL2JlZm9yZV9lYWNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVIOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUluQyxNQUFNLE9BQU8sR0FBUSxDQUFDLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUV2RSxxRUFBcUU7QUFDckUsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO0lBQ3RCLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ3RCLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzdCLGtCQUFrQixFQUFFLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7Q0FDSjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCxnREFBZ0Q7QUFDaEQsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogUHVibGljIFRlc3QgTGlicmFyeSBmb3IgdW5pdCB0ZXN0aW5nIEFuZ3VsYXIgYXBwbGljYXRpb25zLiBBc3N1bWVzIHRoYXQgeW91IGFyZSBydW5uaW5nXG4gKiB3aXRoIEphc21pbmUsIE1vY2hhLCBvciBhIHNpbWlsYXIgZnJhbWV3b3JrIHdoaWNoIGV4cG9ydHMgYSBiZWZvcmVFYWNoIGZ1bmN0aW9uIGFuZFxuICogYWxsb3dzIHRlc3RzIHRvIGJlIGFzeW5jaHJvbm91cyBieSBlaXRoZXIgcmV0dXJuaW5nIGEgcHJvbWlzZSBvciB1c2luZyBhICdkb25lJyBwYXJhbWV0ZXIuXG4gKi9cblxuaW1wb3J0IHtyZXNldEZha2VBc3luY1pvbmV9IGZyb20gJy4vZmFrZV9hc3luYyc7XG5pbXBvcnQge1Rlc3RCZWR9IGZyb20gJy4vdGVzdF9iZWQnO1xuXG5kZWNsYXJlIHZhciBnbG9iYWw6IGFueTtcblxuY29uc3QgX2dsb2JhbCA9IDxhbnk+KHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gZ2xvYmFsIDogd2luZG93KTtcblxuLy8gUmVzZXQgdGhlIHRlc3QgcHJvdmlkZXJzIGFuZCB0aGUgZmFrZSBhc3luYyB6b25lIGJlZm9yZSBlYWNoIHRlc3QuXG5pZiAoX2dsb2JhbC5iZWZvcmVFYWNoKSB7XG4gIF9nbG9iYWwuYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgVGVzdEJlZC5yZXNldFRlc3RpbmdNb2R1bGUoKTtcbiAgICByZXNldEZha2VBc3luY1pvbmUoKTtcbiAgfSk7XG59XG5cbi8qKlxuICogVGhpcyBBUEkgc2hvdWxkIGJlIHJlbW92ZWQuIEJ1dCBkb2luZyBzbyBzZWVtcyB0byBicmVhayBgZ29vZ2xlM2AgYW5kIHNvIGl0IHJlcXVpcmVzIGEgYml0IG9mXG4gKiBpbnZlc3RpZ2F0aW9uLlxuICpcbiAqIEEgd29yayBhcm91bmQgaXMgdG8gbWFyayBpdCBhcyBgQGNvZGVHZW5BcGlgIGZvciBub3cgYW5kIGludmVzdGlnYXRlIGxhdGVyLlxuICpcbiAqIEBjb2RlR2VuQXBpXG4gKi9cbi8vIFRPRE8oaW1pbmFyKTogUmVtb3ZlIHRoaXMgY29kZSBpbiBhIHNhZmUgd2F5LlxuZXhwb3J0IGNvbnN0IF9fY29yZV9wcml2YXRlX3Rlc3RpbmdfcGxhY2Vob2xkZXJfXyA9ICcnO1xuIl19