From 823307eefc1731a7b03ebe78f424bc4328392c3a Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Wed, 31 Aug 2016 02:35:07 +0200 Subject: [PATCH] Safari 8 does not report input validity in forms, so the tests fail for it.. --- src/lib/slide-toggle/slide-toggle.spec.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/slide-toggle/slide-toggle.spec.ts b/src/lib/slide-toggle/slide-toggle.spec.ts index 220d770f4243..e93bae1f81f8 100644 --- a/src/lib/slide-toggle/slide-toggle.spec.ts +++ b/src/lib/slide-toggle/slide-toggle.spec.ts @@ -363,6 +363,7 @@ describe('MdSlideToggle', () => { let testComponent: SlideToggleFormsTestApp; let buttonElement: HTMLButtonElement; let labelElement: HTMLLabelElement; + let inputElement: HTMLInputElement; // This initialization is async() because it needs to wait for ngModel to set the initial value. beforeEach(async(() => { @@ -374,9 +375,17 @@ describe('MdSlideToggle', () => { buttonElement = fixture.debugElement.query(By.css('button')).nativeElement; labelElement = fixture.debugElement.query(By.css('label')).nativeElement; + inputElement = fixture.debugElement.query(By.css('input')).nativeElement; })); - it('should prevent the form from submit when being required', async(() => { + it('should prevent the form from submit when being required', () => { + + if ('reportValidity' in inputElement === false) { + // If the browser does not report the validity then the tests will break. + // e.g Safari 8 on Mobile. + return; + } + testComponent.isRequired = true; fixture.detectChanges(); @@ -393,7 +402,7 @@ describe('MdSlideToggle', () => { fixture.detectChanges(); expect(testComponent.isSubmitted).toBe(true); - })); + }); });