feat(demo): test out validations

This commit is contained in:
Ken Sodemann
2017-11-17 12:02:48 -06:00
parent 3c3cd1b537
commit 4b8d315c52
2 changed files with 34 additions and 3 deletions

View File

@ -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<boolean> {
const classes = await el.getAttribute('class');
return classes.split(' ').indexOf(cls) !== -1;
}
});

View File

@ -12,7 +12,7 @@
<ion-row>
<ion-col>
<label for="stdTextInput">Standard Input</label>
<input id="stdTextInput" name="stdTextInput" [(ngModel)]="stdTextInput" />
<input id="stdTextInput" name="stdTextInput" [(ngModel)]="stdTextInput" minlength="10"/>
</ion-col>
<ion-col>
Standard Text Input:
@ -23,7 +23,7 @@
<ion-col>
<ion-item>
<ion-label>Ionic Text Input</ion-label>
<ion-input id="ionTextInput" name="ionTextInput" [(ngModel)]="ionTextInput" (ionBlur)="onBlur($event)"></ion-input>
<ion-input id="ionTextInput" name="ionTextInput" [(ngModel)]="ionTextInput" minlength="10" (ionBlur)="onBlur($event)"></ion-input>
</ion-item>
</ion-col>
<ion-col>
@ -35,7 +35,7 @@
<ion-col>
<ion-item>
<ion-label>Ionic Text Area Input</ion-label>
<ion-textarea id="ionTextareaInput" name="ionTextareaInput" [(ngModel)]="ionTextareaInput" (ionBlur)="onBlur($event)"></ion-textarea>
<ion-textarea id="ionTextareaInput" name="ionTextareaInput" [(ngModel)]="ionTextareaInput" minlength="10" (ionBlur)="onBlur($event)"></ion-textarea>
</ion-item>
</ion-col>
<ion-col>