diff --git a/packages/angular/demo/e2e/inputs.e2e-spec.ts b/packages/angular/demo/e2e/inputs.e2e-spec.ts index a004fdb61d..780a3df9cc 100644 --- a/packages/angular/demo/e2e/inputs.e2e-spec.ts +++ b/packages/angular/demo/e2e/inputs.e2e-spec.ts @@ -1,3 +1,5 @@ +import { ElementFinder, promise } from 'protractor/built'; + import { InputsPage } from './inputs.po'; describe('Demo Inputs Page', () => { @@ -26,6 +28,18 @@ describe('Demo Inputs Page', () => { el.sendKeys('I am new text'); expect(page.getIonicTextInputOutputText()).toEqual('I am new text'); }); + + it('should trigger validation errors', () => { + page.navigateTo(); + const el = page.getIonicTextInput(); + const inp = page.getIonicTextInputEditable(); + expect(hasClass(el, 'ng-invalid')).toEqual(false); + inp.clear(); + inp.sendKeys('ninechars'); + expect(hasClass(el, 'ng-invalid')).toEqual(true); + inp.sendKeys('X'); + expect(hasClass(el, 'ng-invalid')).toEqual(false); + }); }); describe('textarea input', () => { @@ -42,6 +56,18 @@ describe('Demo Inputs Page', () => { el.sendKeys('I am new text'); expect(page.getIonicTextareaInputOutputText()).toEqual('I am new text'); }); + + it('should trigger validation errors', () => { + page.navigateTo(); + const el = page.getIonicTextareaInput(); + const inp = page.getIonicTextareaInputEditable(); + expect(hasClass(el, 'ng-invalid')).toEqual(false); + inp.clear(); + inp.sendKeys('ninechars'); + expect(hasClass(el, 'ng-invalid')).toEqual(true); + inp.sendKeys('X'); + expect(hasClass(el, 'ng-invalid')).toEqual(false); + }); }); describe('checkbox input', () => { @@ -73,4 +99,9 @@ describe('Demo Inputs Page', () => { expect(page.getIonicToggleOutputText()).toEqual('true'); }); }); + + async function hasClass(el: ElementFinder, cls: string): Promise { + const classes = await el.getAttribute('class'); + return classes.split(' ').indexOf(cls) !== -1; + } }); diff --git a/packages/angular/demo/src/app/inputs/inputs-test-page.component.html b/packages/angular/demo/src/app/inputs/inputs-test-page.component.html index edddc7683e..c93a41876d 100644 --- a/packages/angular/demo/src/app/inputs/inputs-test-page.component.html +++ b/packages/angular/demo/src/app/inputs/inputs-test-page.component.html @@ -12,7 +12,7 @@ - + Standard Text Input: @@ -23,7 +23,7 @@ Ionic Text Input - + @@ -35,7 +35,7 @@ Ionic Text Area Input - +