diff --git a/package.json b/package.json index 71742c1220b1..f99fd4eec752 100644 --- a/package.json +++ b/package.json @@ -55,12 +55,12 @@ }, "version": "12.2.0-next.0", "dependencies": { - "@angular/animations": "^12.1.0", - "@angular/common": "^12.1.0", - "@angular/compiler": "^12.1.0", - "@angular/core": "^12.1.0", - "@angular/forms": "^12.1.0", - "@angular/platform-browser": "^12.1.0", + "@angular/animations": "^12.1.2", + "@angular/common": "^12.1.2", + "@angular/compiler": "^12.1.2", + "@angular/core": "^12.1.2", + "@angular/forms": "^12.1.2", + "@angular/platform-browser": "^12.1.2", "@types/googlemaps": "^3.43.1", "@types/youtube": "^0.0.42", "core-js-bundle": "^3.8.2", @@ -73,15 +73,15 @@ }, "devDependencies": { "@angular-devkit/build-optimizer": "^0.1201.0", - "@angular-devkit/core": "^12.1.0", - "@angular-devkit/schematics": "^12.1.0", + "@angular-devkit/core": "^12.1.2", + "@angular-devkit/schematics": "^12.1.2", "@angular/bazel": "https://github.com/angular/bazel-builds.git#2566cc859235399edc72749a957f1cdcba2dc121", - "@angular/compiler-cli": "^12.1.0", + "@angular/compiler-cli": "^12.1.2", "@angular/dev-infra-private": "https://github.com/angular/dev-infra-private-builds.git#0057daca63205a10c26256b6733b02af835497c0", - "@angular/localize": "^12.1.0", - "@angular/platform-browser-dynamic": "^12.1.0", - "@angular/platform-server": "^12.1.0", - "@angular/router": "^12.1.0", + "@angular/localize": "^12.1.2", + "@angular/platform-browser-dynamic": "^12.1.2", + "@angular/platform-server": "^12.1.2", + "@angular/router": "^12.1.2", "@axe-core/webdriverjs": "^4.1.0", "@babel/core": "^7.13.10", "@babel/traverse": "^7.13.0", @@ -146,7 +146,7 @@ "@octokit/rest": "18.3.5", "@rollup/plugin-babel": "^5.3.0", "@rollup/plugin-commonjs": "^18.0.0", - "@schematics/angular": "^12.1.0", + "@schematics/angular": "^12.1.2", "@types/browser-sync": "^2.26.1", "@types/fs-extra": "^9.0.5", "@types/glob": "^7.1.3", diff --git a/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts b/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts index 529706da2911..c0fcd85e34f1 100644 --- a/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts +++ b/src/components-examples/material/autocomplete/autocomplete-harness/autocomplete-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('AutocompleteHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts b/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts index 93dbcb128900..2d6e344595ae 100644 --- a/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts +++ b/src/components-examples/material/badge/badge-harness/badge-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('BadgeHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts b/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts index 30c74e5970df..a35229885436 100644 --- a/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts +++ b/src/components-examples/material/bottom-sheet/bottom-sheet-harness/bottom-sheet-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('BottomSheetHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts b/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts index 3f3ef8873c3e..ea8923ab133a 100644 --- a/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts +++ b/src/components-examples/material/button-toggle/button-toggle-harness/button-toggle-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('ButtonToggleHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/button/button-harness/button-harness-example.spec.ts b/src/components-examples/material/button/button-harness/button-harness-example.spec.ts index 62b3e67e3944..97ae558f5e73 100644 --- a/src/components-examples/material/button/button-harness/button-harness-example.spec.ts +++ b/src/components-examples/material/button/button-harness/button-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('ButtonHarnessExample', () => { let buttonHarness = MatButtonHarness; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/card/card-harness/card-harness-example.spec.ts b/src/components-examples/material/card/card-harness/card-harness-example.spec.ts index c9ad457bc579..58e4fab29753 100644 --- a/src/components-examples/material/card/card-harness/card-harness-example.spec.ts +++ b/src/components-examples/material/card/card-harness/card-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('CardHarnessExample', () => { let fixture: ComponentFixture; let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { await TestBed.configureTestingModule({ diff --git a/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts b/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts index 08032630c658..10e30fe3b3cf 100644 --- a/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts +++ b/src/components-examples/material/checkbox/checkbox-harness/checkbox-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('CheckboxHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts b/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts index a80c17b63f2c..a995a799f524 100644 --- a/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts +++ b/src/components-examples/material/chips/chips-harness/chips-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('ChipsHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts b/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts index a849c0a5f7e8..9cf1c5e0ef3e 100644 --- a/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts +++ b/src/components-examples/material/datepicker/datepicker-harness/datepicker-harness-example.spec.ts @@ -17,7 +17,9 @@ describe('DatepickerHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts b/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts index 90b57944f29a..00b02c34cbaf 100644 --- a/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts +++ b/src/components-examples/material/dialog/dialog-harness/dialog-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('DialogHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(waitForAsync(async () => { diff --git a/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts b/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts index da08664b04db..f6d35bc0d2bf 100644 --- a/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts +++ b/src/components-examples/material/divider/divider-harness/divider-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('DividerHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts b/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts index e544aea6b29f..9e1322d31d9a 100644 --- a/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts +++ b/src/components-examples/material/expansion/expansion-harness/expansion-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('ExpansionHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts b/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts index ed8131311a64..f0ad60770ef0 100644 --- a/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts +++ b/src/components-examples/material/form-field/form-field-harness/form-field-harness-example.spec.ts @@ -18,7 +18,9 @@ describe('FormFieldHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts b/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts index 12f766a224f5..76d530879234 100644 --- a/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts +++ b/src/components-examples/material/grid-list/grid-list-harness/grid-list-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('GridListHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts b/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts index c7e5d47a3f12..bf8f41302dd0 100644 --- a/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts +++ b/src/components-examples/material/icon/icon-harness/icon-harness-example.spec.ts @@ -16,7 +16,9 @@ describe('IconHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/input/input-harness/input-harness-example.spec.ts b/src/components-examples/material/input/input-harness/input-harness-example.spec.ts index 18fad39e2ff5..972d0da85dec 100644 --- a/src/components-examples/material/input/input-harness/input-harness-example.spec.ts +++ b/src/components-examples/material/input/input-harness/input-harness-example.spec.ts @@ -16,7 +16,9 @@ describe('InputHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/list/list-harness/list-harness-example.spec.ts b/src/components-examples/material/list/list-harness/list-harness-example.spec.ts index e3165a5c664d..86a15ac725f8 100644 --- a/src/components-examples/material/list/list-harness/list-harness-example.spec.ts +++ b/src/components-examples/material/list/list-harness/list-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('ListHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts b/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts index 75dfcc625ebd..44a31de6001e 100644 --- a/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts +++ b/src/components-examples/material/menu/menu-harness/menu-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('MenuHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts b/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts index 5dbc4d419eea..6485acea915a 100644 --- a/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts +++ b/src/components-examples/material/paginator/paginator-harness/paginator-harness-example.spec.ts @@ -16,7 +16,9 @@ describe('PaginatorHarnessExample', () => { let instance: PaginatorHarnessExample; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts b/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts index bb375f5fa043..724b77948725 100644 --- a/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts +++ b/src/components-examples/material/progress-bar/progress-bar-harness/progress-bar-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('ProgressBarHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts b/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts index ed4e72cef770..ef81568134bf 100644 --- a/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts +++ b/src/components-examples/material/progress-spinner/progress-spinner-harness/progress-spinner-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('ProgressSpinnerHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts b/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts index 62b8c3b2408b..6d6963d88a60 100644 --- a/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts +++ b/src/components-examples/material/radio/radio-harness/radio-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('RadioHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/select/select-harness/select-harness-example.spec.ts b/src/components-examples/material/select/select-harness/select-harness-example.spec.ts index 0f3881238118..08ddf5c12c8b 100644 --- a/src/components-examples/material/select/select-harness/select-harness-example.spec.ts +++ b/src/components-examples/material/select/select-harness/select-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('SelectHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts b/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts index 2a58fa0e86e3..bd4749f3517d 100644 --- a/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts +++ b/src/components-examples/material/sidenav/sidenav-harness/sidenav-harness-example.spec.ts @@ -18,7 +18,9 @@ describe('SidenavHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts b/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts index 37190b34b57d..abe136e63a0e 100644 --- a/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts +++ b/src/components-examples/material/slide-toggle/slide-toggle-harness/slide-toggle-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('SlideToggleHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts b/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts index d290880bed6c..3f99117d20d3 100644 --- a/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts +++ b/src/components-examples/material/slider/slider-harness/slider-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('SliderHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts b/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts index 1f1a20f1c2e1..3f23b97128cc 100644 --- a/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts +++ b/src/components-examples/material/snack-bar/snack-bar-harness/snack-bar-harness-example.spec.ts @@ -16,7 +16,9 @@ describe('SnackBarHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts b/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts index 6bd433b8700c..4914609c869b 100644 --- a/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts +++ b/src/components-examples/material/sort/sort-harness/sort-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('SortHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts b/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts index 0f66fed4a733..bbcffb2f0a15 100644 --- a/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts +++ b/src/components-examples/material/stepper/stepper-harness/stepper-harness-example.spec.ts @@ -16,7 +16,9 @@ describe('StepperHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/table/table-harness/table-harness-example.spec.ts b/src/components-examples/material/table/table-harness/table-harness-example.spec.ts index 3f5c3fd9332a..fa1693183082 100644 --- a/src/components-examples/material/table/table-harness/table-harness-example.spec.ts +++ b/src/components-examples/material/table/table-harness/table-harness-example.spec.ts @@ -14,7 +14,9 @@ describe('TableHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts b/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts index bce09bb624c3..580499dda005 100644 --- a/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts +++ b/src/components-examples/material/tabs/tab-group-harness/tab-group-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('TabGroupHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts b/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts index abe3e86a719a..6ec063932196 100644 --- a/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts +++ b/src/components-examples/material/toolbar/toolbar-harness/toolbar-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('ToolbarHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts b/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts index 0a74b8059313..24d27e2f0f6f 100644 --- a/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts +++ b/src/components-examples/material/tooltip/tooltip-harness/tooltip-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('TooltipHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts b/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts index e940300c46b2..5910dedd0e6f 100644 --- a/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts +++ b/src/components-examples/material/tree/tree-harness/tree-harness-example.spec.ts @@ -15,7 +15,9 @@ describe('TreeHarnessExample', () => { let loader: HarnessLoader; beforeAll(() => { - TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); + TestBed.initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} + }); }); beforeEach(async () => { diff --git a/src/material-experimental/mdc-slider/slider.spec.ts b/src/material-experimental/mdc-slider/slider.spec.ts index dbba74e4a667..8c01de6c2d81 100644 --- a/src/material-experimental/mdc-slider/slider.spec.ts +++ b/src/material-experimental/mdc-slider/slider.spec.ts @@ -37,21 +37,20 @@ interface Point { describe('MDC-based MatSlider' , () => { let platform: Platform; - beforeAll(() => { - platform = TestBed.inject(Platform); - // Mock #setPointerCapture as it throws errors on pointerdown without a real pointerId. - spyOn(Element.prototype, 'setPointerCapture'); - }); - function createComponent( component: Type, providers: Provider[] = [], - ): ComponentFixture { + ): ComponentFixture { TestBed.configureTestingModule({ imports: [FormsModule, MatSliderModule, ReactiveFormsModule, BidiModule], declarations: [component], providers: [...providers], }).compileComponents(); + + platform = TestBed.inject(Platform); + // Mock #setPointerCapture as it throws errors on pointerdown without a real pointerId. + spyOn(Element.prototype, 'setPointerCapture'); + return TestBed.createComponent(component); } diff --git a/test/angular-test-init-spec.ts b/test/angular-test-init-spec.ts index df82e1dd7da4..48b4c8e3d6f7 100644 --- a/test/angular-test-init-spec.ts +++ b/test/angular-test-init-spec.ts @@ -1,5 +1,4 @@ -import {NgModuleRef} from '@angular/core'; -import {ComponentFixture, TestBed} from '@angular/core/testing'; +import {TestBed} from '@angular/core/testing'; import { BrowserDynamicTestingModule, platformBrowserDynamicTesting, @@ -9,64 +8,11 @@ import { * Common setup / initialization for all unit tests in Angular Material and CDK. */ -const testBed = - TestBed.initTestEnvironment([BrowserDynamicTestingModule], platformBrowserDynamicTesting()); -patchTestBedToDestroyFixturesAfterEveryTest(testBed); +TestBed.initTestEnvironment([BrowserDynamicTestingModule], platformBrowserDynamicTesting(), { + teardown: {destroyAfterEach: true} +}); (window as any).module = {}; (window as any).isNode = false; (window as any).isBrowser = true; (window as any).global = window; - - -/** - * Monkey-patches TestBed.resetTestingModule such that any errors that occur during component - * destruction are thrown instead of silently logged. Also runs TestBed.resetTestingModule after - * each unit test. - * - * Without this patch, the combination of two behaviors is problematic for Angular Material: - * - TestBed.resetTestingModule catches errors thrown on fixture destruction and logs them without - * the errors ever being thrown. This means that any component errors that occur in ngOnDestroy - * can encounter errors silently and still pass unit tests. - * - TestBed.resetTestingModule is only called *before* a test is run, meaning that even *if* the - * aforementioned errors were thrown, they would be reported for the wrong test (the test that's - * about to start, not the test that just finished). - */ -function patchTestBedToDestroyFixturesAfterEveryTest(testBedInstance: TestBed) { - // Original resetTestingModule function of the TestBed. - const _resetTestingModule = testBedInstance.resetTestingModule; - - // Monkey-patch the resetTestingModule to destroy fixtures outside of a try/catch block. - // With https://github.com/angular/angular/commit/2c5a67134198a090a24f6671dcdb7b102fea6eba - // errors when destroying components are no longer causing Jasmine to fail. - testBedInstance.resetTestingModule = function(this: { - /** List of active fixtures in the current testing module. */ - _activeFixtures: ComponentFixture[], - /** Module Ref used in the Ivy TestBed for creating components. */ - _testModuleRef?: NgModuleRef|null, - /** Module Ref used in the View Engine TestBed for creating components. */ - _moduleRef?: NgModuleRef|null - }) { - try { - const moduleRef = this._testModuleRef || this._moduleRef; - this._activeFixtures.forEach((fixture: ComponentFixture) => fixture.destroy()); - // Destroy the TestBed `NgModule` reference to clear out shared styles that would - // otherwise remain in DOM and significantly increase memory consumption in browsers. - // This increased consumption then results in noticeable test instability and slow-down. - // See: https://github.com/angular/angular/issues/31834. - if (moduleRef != null) { - moduleRef.destroy(); - } - } finally { - this._activeFixtures = []; - // Regardless of errors or not, run the original reset testing module function. - _resetTestingModule.call(this); - } - }; - - // Angular's testing package resets the testing module before each test. This doesn't work well - // for us because it doesn't allow developers to see what test actually failed. - // Fixing this by resetting the testing module after each test. - // https://github.com/angular/angular/blob/master/packages/core/testing/src/before_each.ts#L25 - afterEach(() => testBedInstance.resetTestingModule()); -} diff --git a/test/karma-test-shim.js b/test/karma-test-shim.js index cda5cf69b5ff..3349619076cf 100644 --- a/test/karma-test-shim.js +++ b/test/karma-test-shim.js @@ -50,56 +50,8 @@ function configureTestBed() { var testBed = testing.TestBed.initTestEnvironment( testingBrowser.BrowserDynamicTestingModule, - testingBrowser.platformBrowserDynamicTesting() + testingBrowser.platformBrowserDynamicTesting(), + {teardown: {destroyAfterEach: true}} ); - - patchTestBedToDestroyFixturesAfterEveryTest(testBed); - }); -} - -/** - * Monkey-patches TestBed.resetTestingModule such that any errors that occur during component - * destruction are thrown instead of silently logged. Also runs TestBed.resetTestingModule after - * each unit test. - * - * Without this patch, the combination of two behaviors is problematic for Angular Material: - * - TestBed.resetTestingModule catches errors thrown on fixture destruction and logs them without - * the errors ever being thrown. This means that any component errors that occur in ngOnDestroy - * can encounter errors silently and still pass unit tests. - * - TestBed.resetTestingModule is only called *before* a test is run, meaning that even *if* the - * aforementioned errors were thrown, they would be reported for the wrong test (the test that's - * about to start, not the test that just finished). - */ -function patchTestBedToDestroyFixturesAfterEveryTest(testBed) { - // Original resetTestingModule function of the TestBed. - var _resetTestingModule = testBed.resetTestingModule; - - // Monkey-patch the resetTestingModule to destroy fixtures outside of a try/catch block. - // With https://github.com/angular/angular/commit/2c5a67134198a090a24f6671dcdb7b102fea6eba - // errors when destroying components are no longer causing Jasmine to fail. - testBed.resetTestingModule = function() { - try { - const moduleRef = this._testModuleRef || this._moduleRef; - this._activeFixtures.forEach(function (fixture) { fixture.destroy(); }); - // Destroy the TestBed `NgModule` reference to clear out shared styles that would - // otherwise remain in DOM and significantly increase memory consumption in browsers. - // This increased consumption then results in noticeable test instability and slow-down. - // See: https://github.com/angular/angular/issues/31834. - if (moduleRef != null) { - moduleRef.destroy(); - } - } finally { - this._activeFixtures = []; - // Regardless of errors or not, run the original reset testing module function. - _resetTestingModule.call(this); - } - }; - - // Angular's testing package resets the testing module before each test. This doesn't work well - // for us because it doesn't allow developers to see what test actually failed. - // Fixing this by resetting the testing module after each test. - // https://github.com/angular/angular/blob/master/packages/core/testing/src/before_each.ts#L25 - afterEach(function() { - testBed.resetTestingModule(); }); } diff --git a/yarn.lock b/yarn.lock index 84ad37bdc99e..2f9d54cf4127 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11,10 +11,10 @@ tslib "2.3.0" typescript "4.3.4" -"@angular-devkit/core@12.1.0", "@angular-devkit/core@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-12.1.0.tgz#d00a50ede9441ea225284238a3f96fd1a206f928" - integrity sha512-y6q/hn9/j6LwNgDzTBXe5pTXouU7nuc3KZFq3JwfTdo4yTIxN1Rdv9+zfzDkzEcYtyFoqLqqskQFme/DqdbEZw== +"@angular-devkit/core@12.1.2", "@angular-devkit/core@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-12.1.2.tgz#6fd1a49752f16df7a83d0549947cadb2a72c69f9" + integrity sha512-TeaRbvsNEeAkRJcIBlT6yUNh0vaVVBGBYfXYFIMg/I04ex/HI0ApEowu78GeTzCqlE0r4t+WaGT46m7+NIljKg== dependencies: ajv "8.6.0" ajv-formats "2.1.0" @@ -23,19 +23,19 @@ rxjs "6.6.7" source-map "0.7.3" -"@angular-devkit/schematics@12.1.0", "@angular-devkit/schematics@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-12.1.0.tgz#b559e0a07059b72efc8739a47a8d3ec043737303" - integrity sha512-KlE1fnvqWItt9dYCaQ89b9WoqFvOK64kemCLGGx49CllQ3con1lwXW2iauzT/29UoK1rSzvTVMvTJcDQOJ7isQ== +"@angular-devkit/schematics@12.1.2", "@angular-devkit/schematics@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-12.1.2.tgz#25d97d28f70876d9f43ab32d6d324297e2a6196b" + integrity sha512-/UGcAJChq+g7wf46Exr5iIyuVw3j4TxTIntTpuKg/z/xf9Y+8mzJAZgGittu/yFcHAJ9aYcOHctffrfEdV7QSA== dependencies: - "@angular-devkit/core" "12.1.0" + "@angular-devkit/core" "12.1.2" ora "5.4.1" rxjs "6.6.7" -"@angular/animations@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-12.1.0.tgz#144a665b28a3a76b236e1dca4656c7420182f8e5" - integrity sha512-I81M9nptMWHgbBUfJKyjQghNplV/aLvjxKEo3nTqf33/9G+nqMU2S2mAG8X8q/R/199R7DtJOmjqdmGkDgT8BQ== +"@angular/animations@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-12.1.2.tgz#38bbb69da11ee0f5fc69c6742f9003243d5ede8c" + integrity sha512-gFRObY32h33tHI60NS0A6DXKL/Y9h8Efo3s2leIsInuYdxZBb7/vlJu4i5AJWEdFZNcY6TDBxK1vi37xlLdLlQ== dependencies: tslib "^2.2.0" @@ -56,17 +56,17 @@ "@angular/core" "^10.0.0-0 || ^11.0.0" reflect-metadata "^0.1.13" -"@angular/common@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-12.1.0.tgz#7cfa23761c17fecc89e286633af9ee17aa69108a" - integrity sha512-DsnH0rIuhEFhRdQkhr4Bb7YiNTCG0+PbmpA1SCzU3jqeSV1Zr0Q9ZoDf/Ab8+x3vGmdTJhcnncoxrKdzfRHQKQ== +"@angular/common@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-12.1.2.tgz#a787453342d7cd884d340738014b75a8143dac30" + integrity sha512-/sf8iPZwHceMD4xNH4E8qjxXWAypjxmJBlv+9OczS1pGvYATBB9CaKCJQ73c6Yks9Cqz37q1DMWK3S376YWZMQ== dependencies: tslib "^2.2.0" -"@angular/compiler-cli@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-12.1.0.tgz#c2a7dac72d64bda6cae2953af170ecf73d0fe865" - integrity sha512-6MV6h5hlZfjVNrB8il2sCF7wa0qWKutfK2Za8DFHVCqNND1j75iXrrHNxbu30jZC0HXOSrQQuUThifT/YUU3MQ== +"@angular/compiler-cli@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-12.1.2.tgz#498f543479210f112e36bbdfbaa2c762afc82353" + integrity sha512-+29dnsU6w5CWkMOCFIUQNAKqI9y1mKT7bPNaVgqEgWWlloY5D2myE9ceBuIt7WDQhxz5kfAOSIgy6Chw1bqpMg== dependencies: "@babel/core" "^7.8.6" "@babel/types" "^7.8.6" @@ -88,10 +88,10 @@ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== -"@angular/compiler@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-12.1.0.tgz#c630dd7fe26184645dd3f0f227d1b8862920919d" - integrity sha512-Nk9l8fWv0XrEZGpN8EftAzTC6Q2oTnDqnYQ9Ykc3rkRQs4r8MDG9cUd4z5gbEToFgX7KVQ3+wLAYVX+uB6A5hg== +"@angular/compiler@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-12.1.2.tgz#316dab8bc1297bfd8ff5730b544150e54c780228" + integrity sha512-G0KKpV4jL/qErUN9i/tKHHIO0P6GGtoDyexz4qh4m+K7dxn5WHd9FcqbTTLHbnGg7RnfuKou3muAWhvSoPqhSw== dependencies: tslib "^2.2.0" @@ -107,10 +107,10 @@ dependencies: tslib "^2.0.0" -"@angular/core@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-12.1.0.tgz#72b39238aa2cefe4ba41f2ae43c1e75bf8062566" - integrity sha512-awrCla6j4U0CU86q8nwR49GiULo3XhMcgooPgRBMjN1aHTDXKacSC9hk2nXkipC9VjuhybUVswuW4/et6d4RZQ== +"@angular/core@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-12.1.2.tgz#92890156e7383501cf1c0493ee5b9548d04deda2" + integrity sha512-+JvM9fNICKMdfXpaKR0zSWMrrMCp78N1056Di2/RxLxvycm/TegjHq0IXVqpY9hMccZXjjCTl0EUNVMFZ2mkcg== dependencies: tslib "^2.2.0" @@ -150,49 +150,49 @@ yaml "^1.10.0" yargs "^17.0.0" -"@angular/forms@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-12.1.0.tgz#ebe5dca90357423dd7f919235e8e8a935c8a1fb4" - integrity sha512-iWJGvtd7GEisx+pqKDsFq3yu2bsP/Kj+vCSSIJStWNrSUBRr/J0WY9lXp+SR3mU4oMyVw1iGhdHFe3HCzfa7lw== +"@angular/forms@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-12.1.2.tgz#92ac2cc88f6c007aa5121d9a64a027d1fdc6b97f" + integrity sha512-cJ8zoaQpOtjTwPc0ObH6qXM0k9MWl+8eGL3jDtf01n0ByZXWFZ+2oQHmU64rO8sJntUR8LPvbXFJRMNd0ZpdsQ== dependencies: tslib "^2.2.0" -"@angular/localize@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-12.1.0.tgz#19fd84e50d8b6a7386f8f6d3502b261df648539c" - integrity sha512-QA5UlgJNizTtXjCBCapwxro+a5pBmwLOksI71AFAnUUtvGcVSsQyy3lDjlDy+21DNI7Mq5YotrLquD1DLXWnAQ== +"@angular/localize@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-12.1.2.tgz#74b4509c791bd075cf343ae200a37e799272e675" + integrity sha512-VUr5E9fOa8O40DxN/69ECC6PB6vY0kO1mluoAdlhK46tvh3E7DJ3dp4i2+aeJavk1sP1zPuqSwxmw5TbR2wt4w== dependencies: "@babel/core" "7.8.3" glob "7.1.7" yargs "^17.0.0" -"@angular/platform-browser-dynamic@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.1.0.tgz#6fa337c3b6570d15ac9a3b333327c159e73f37a0" - integrity sha512-7nlLvlXTHjYmFJKYZP6RtmASWF9bAwF4trdtH187h3ODSAHHtRQex+elfOzZhjNSTipXxS+g8RzOK8Lr3+H4gg== +"@angular/platform-browser-dynamic@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-12.1.2.tgz#5d5991a9eececf3d1edf131ab6c0d96cdc988180" + integrity sha512-y7O2vu6p2shnO2kKoyaIjsQP1seg73ky3ORur2oaLTIfa1Uxeho2Ow0V6O0RUL230ol4qGetL64TMK7SjyoPhQ== dependencies: tslib "^2.2.0" -"@angular/platform-browser@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-12.1.0.tgz#bc6f32d61a18bc9927ce71f785e05e5b2021c4e4" - integrity sha512-YOUfafuvovy7rfrrUxWRvVbsgauH34UHsPfAfeugO2dWbI39UNkyY1PxXGaoa1WvA7Gb+arm6FeKjjy3vJmIBw== +"@angular/platform-browser@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-12.1.2.tgz#8291ec779a3d867c37b22291b81eb5c3e70dfda7" + integrity sha512-QDtRZQDn0yrcuNoxDLrawCG8Pe5DdhJFy4tmMEpUYBpFZT+9qsRf5RD01QbzvbDKxwxgsce/783WZoPImMqaIA== dependencies: tslib "^2.2.0" -"@angular/platform-server@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-12.1.0.tgz#f9b8b15878ac42ad7aa833c06914c1a724ace2a1" - integrity sha512-sQASusZMfqz3s+J7i0Ny6NgFNopW9Gyhr1cnjODMTsJAs3w8d7o5p0wNtgavunfXv9JVSRC+O3R2dBbUI5bWcg== +"@angular/platform-server@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/platform-server/-/platform-server-12.1.2.tgz#8862ec02d069254a54c08f03196b320c236470a1" + integrity sha512-vT5uJ8CKyC5TrdmL1x4LYdPok4poq5BCyEMgsxZ6mrCQyuk4d4MatZHRdBpOZlh7vtRKkjE0ymjYQG0cWt4Edw== dependencies: domino "^2.1.2" tslib "^2.2.0" xhr2 "^0.2.0" -"@angular/router@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-12.1.0.tgz#6889ea1da331fdbcc373a5beae8a66d7a183c34a" - integrity sha512-m9Dk8HPv4nhnezrZSlQrByHE/Vr3dIIq3YzgKJOAoQxy4NkM4TlOAl1Q28hUsMmEiLbfpzVyKps636kT8LStkA== +"@angular/router@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-12.1.2.tgz#3fb631a2a3c6019759b570271d09a4bd38c731ec" + integrity sha512-iYf8c5HMdchHiEhZ01HCXyZjUmxUWI+es17V/GnsR1+S1NeF3TeYhGf3X2wdhVDvPfxq/4kZZRSddM0PAm0Lfw== dependencies: tslib "^2.2.0" @@ -2152,13 +2152,13 @@ colors "~1.2.1" string-argv "~0.3.1" -"@schematics/angular@^12.1.0": - version "12.1.0" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-12.1.0.tgz#5c339b95dc77e8cdd17240968c0f19a3b2086285" - integrity sha512-BUCBiW+DQsOofSs4TE26M2OhlS0g9Mdyd0xWF4FD2Ab3xwQgkV1gogZgCl9dZtNfiimYebdM9LOeHqYWmvqCdw== +"@schematics/angular@^12.1.2": + version "12.1.2" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-12.1.2.tgz#56cef0a6308641503667d08e9b64f01463e44d92" + integrity sha512-nnFPp9uHLinP05r9TFsWT+fwlbwbLHg3yzJr+0aIOX1OsZQFV8hblEFEqdzFQJyx1uGMp4nvBHvCUlYv9GVQLg== dependencies: - "@angular-devkit/core" "12.1.0" - "@angular-devkit/schematics" "12.1.0" + "@angular-devkit/core" "12.1.2" + "@angular-devkit/schematics" "12.1.2" jsonc-parser "3.0.0" "@sindresorhus/is@^0.14.0":