From 2a8377aa612a43658922186e0725e71db23d72d6 Mon Sep 17 00:00:00 2001 From: crisbeto Date: Wed, 3 May 2017 23:33:58 +0200 Subject: [PATCH] chore: random test leaks Fixes some unit tests that were leaking elements into other tests. --- src/lib/autocomplete/autocomplete.spec.ts | 4 ++++ src/lib/core/overlay/overlay.spec.ts | 4 ++++ .../core/overlay/position/global-position-strategy.spec.ts | 1 + src/lib/core/overlay/scroll/close-scroll-strategy.spec.ts | 4 ++++ .../core/overlay/scroll/reposition-scroll-strategy.spec.ts | 4 ++++ src/lib/snack-bar/snack-bar.spec.ts | 5 ++++- src/lib/tooltip/tooltip.spec.ts | 4 ++++ 7 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/lib/autocomplete/autocomplete.spec.ts b/src/lib/autocomplete/autocomplete.spec.ts index a9a1c8e6dc28..40329cdcea6c 100644 --- a/src/lib/autocomplete/autocomplete.spec.ts +++ b/src/lib/autocomplete/autocomplete.spec.ts @@ -80,6 +80,10 @@ describe('MdAutocomplete', () => { TestBed.compileComponents(); })); + afterEach(() => { + document.body.removeChild(overlayContainerElement); + }); + describe('panel toggling', () => { let fixture: ComponentFixture; let input: HTMLInputElement; diff --git a/src/lib/core/overlay/overlay.spec.ts b/src/lib/core/overlay/overlay.spec.ts index 46f5cda36227..681849b44f3c 100644 --- a/src/lib/core/overlay/overlay.spec.ts +++ b/src/lib/core/overlay/overlay.spec.ts @@ -393,6 +393,10 @@ describe('OverlayContainer theming', () => { overlayContainerElement = overlayContainer.getContainerElement(); })); + afterEach(() => { + overlayContainerElement.parentNode.removeChild(overlayContainerElement); + }); + it('should be able to set a theme on the overlay container', () => { overlayContainer.themeClass = 'my-theme'; expect(overlayContainerElement.classList).toContain('my-theme'); diff --git a/src/lib/core/overlay/position/global-position-strategy.spec.ts b/src/lib/core/overlay/position/global-position-strategy.spec.ts index 475fce5d6fd6..c244cc4487b1 100644 --- a/src/lib/core/overlay/position/global-position-strategy.spec.ts +++ b/src/lib/core/overlay/position/global-position-strategy.spec.ts @@ -17,6 +17,7 @@ describe('GlobalPositonStrategy', () => { }); afterEach(() => { + element.parentNode.removeChild(element); strategy.dispose(); }); diff --git a/src/lib/core/overlay/scroll/close-scroll-strategy.spec.ts b/src/lib/core/overlay/scroll/close-scroll-strategy.spec.ts index d92e62e1d8de..aadfe8f209d5 100644 --- a/src/lib/core/overlay/scroll/close-scroll-strategy.spec.ts +++ b/src/lib/core/overlay/scroll/close-scroll-strategy.spec.ts @@ -43,6 +43,10 @@ describe('CloseScrollStrategy', () => { componentPortal = new ComponentPortal(MozarellaMsg); })); + afterEach(() => { + overlayRef.dispose(); + }); + it('should detach the overlay as soon as the user scrolls', () => { overlayRef.attach(componentPortal); spyOn(overlayRef, 'detach'); diff --git a/src/lib/core/overlay/scroll/reposition-scroll-strategy.spec.ts b/src/lib/core/overlay/scroll/reposition-scroll-strategy.spec.ts index 20e396d32d04..d210e20b8900 100644 --- a/src/lib/core/overlay/scroll/reposition-scroll-strategy.spec.ts +++ b/src/lib/core/overlay/scroll/reposition-scroll-strategy.spec.ts @@ -43,6 +43,10 @@ describe('RepositionScrollStrategy', () => { componentPortal = new ComponentPortal(PastaMsg); })); + afterEach(() => { + overlayRef.dispose(); + }); + it('should update the overlay position when the page is scrolled', () => { overlayRef.attach(componentPortal); spyOn(overlayRef, 'updatePosition'); diff --git a/src/lib/snack-bar/snack-bar.spec.ts b/src/lib/snack-bar/snack-bar.spec.ts index f6463f3b1594..a6697a31b0f1 100644 --- a/src/lib/snack-bar/snack-bar.spec.ts +++ b/src/lib/snack-bar/snack-bar.spec.ts @@ -349,6 +349,7 @@ describe('MdSnackBar with parent MdSnackBar', () => { let childSnackBar: MdSnackBar; let overlayContainerElement: HTMLElement; let fixture: ComponentFixture; + let liveAnnouncer: LiveAnnouncer; beforeEach(async(() => { TestBed.configureTestingModule({ @@ -365,8 +366,9 @@ describe('MdSnackBar with parent MdSnackBar', () => { TestBed.compileComponents(); })); - beforeEach(inject([MdSnackBar], (sb: MdSnackBar) => { + beforeEach(inject([MdSnackBar, LiveAnnouncer], (sb: MdSnackBar, la: LiveAnnouncer) => { parentSnackBar = sb; + liveAnnouncer = la; fixture = TestBed.createComponent(ComponentThatProvidesMdSnackBar); childSnackBar = fixture.componentInstance.snackBar; @@ -375,6 +377,7 @@ describe('MdSnackBar with parent MdSnackBar', () => { afterEach(() => { overlayContainerElement.innerHTML = ''; + liveAnnouncer._removeLiveElement(); }); it('should close snackBars opened by parent when opening from child MdSnackBar', fakeAsync(() => { diff --git a/src/lib/tooltip/tooltip.spec.ts b/src/lib/tooltip/tooltip.spec.ts index 5da630f96540..f9915cff266f 100644 --- a/src/lib/tooltip/tooltip.spec.ts +++ b/src/lib/tooltip/tooltip.spec.ts @@ -50,6 +50,10 @@ describe('MdTooltip', () => { TestBed.compileComponents(); })); + afterEach(() => { + document.body.removeChild(overlayContainerElement); + }); + describe('basic usage', () => { let fixture: ComponentFixture; let buttonDebugElement: DebugElement;