ng2-bootstrap-base-modified
Version:
Native Angular Bootstrap Components Typeahead modified
125 lines (100 loc) • 5.12 kB
text/typescript
import {browser, $} from 'protractor';
import {typeheadEl} from '../selectors.json';
import {leftPanelTests} from './leftPanelTests.po';
import {DataProvider} from '../data-provider/data-provider.po';
let using = require('jasmine-data-provider');
function getItemNumberInDropdown(itemNumber: any): any {
return $('typeahead-container li:nth-child(' + itemNumber + ')>a');
}
function clearInputFields(): any {
typeheadEl.inputStatic.clear();
typeheadEl.inputTemplate.clear();
typeheadEl.inputOption.clear();
typeheadEl.inputAsynchronous.clear();
typeheadEl.inputReactiveForms.clear();
typeheadEl.inputGroupingResults.clear();
}
describe('Typeahead page tests on bootstrap 3', () => {
beforeAll(() => {
browser.get('#/typeahead');
leftPanelTests.checkLeftPanelMini();
leftPanelTests.checkLeftPanelMaxi();
browser.ignoreSynchronization = false;
});
using(DataProvider.typeaheadDefaultTexts, (data: any, description: string) => {
it('Check default texts: ' + description, () => {
expect(data.element().getText()).toContain(data.actualResult);
});
});
using(DataProvider.inputDifferentData, (data: any, description: string) => {
it('Check input fields with different data: ' + description, () => {
clearInputFields();
typeheadEl.inputStatic.sendKeys(data.inputText);
expect(typeheadEl.modelStatic.getText()).toBe('Model: ' + '"' + data.inputText + '"');
typeheadEl.inputTemplate.sendKeys(data.inputText);
expect(typeheadEl.modelTemplate.getText()).toBe('Model: ' + '"' + data.inputText + '"');
typeheadEl.inputOption.sendKeys(data.inputText);
expect(typeheadEl.modelOption.getText()).toBe('Model: ' + '"' + data.inputText + '"');
typeheadEl.inputAsynchronous.sendKeys(data.inputText);
expect(typeheadEl.modelAsynchronous.getText()).toBe('Model: ' + '"' + data.inputText + '"');
typeheadEl.inputReactiveForms.sendKeys(data.inputText);
expect(typeheadEl.modelReactiveForms.getText()).toBe('Model: ' + '"' + data.inputText + '"');
typeheadEl.inputGroupingResults.sendKeys(data.inputText);
expect(typeheadEl.modelGroupingResults.getText()).toBe('Model: ' + '"' + data.inputText + '"');
});
});
using(DataProvider.typeaheadInputCityTexts, (data: any, description: string) => {
it('Check items from dropdown: ' + description, () => {
clearInputFields();
typeheadEl.inputStatic.sendKeys(data.inputText);
getItemNumberInDropdown(1).click();
expect(typeheadEl.modelStatic.getText()).toBe('Model: ' + '"' + data.expectedResult + '"');
typeheadEl.inputTemplate.sendKeys(data.inputText);
getItemNumberInDropdown(1).click();
expect(typeheadEl.modelTemplate.getText()).toBe('Model: ' + '"' + data.expectedResult + '"');
typeheadEl.inputOption.sendKeys(data.inputText);
getItemNumberInDropdown(1).click();
expect(typeheadEl.modelOption.getText()).toBe('Model: ' + '"' + data.expectedResult + '"');
typeheadEl.inputAsynchronous.sendKeys(data.inputText);
getItemNumberInDropdown(1).click();
expect(typeheadEl.modelAsynchronous.getText()).toBe('Model: ' + '"' + data.expectedResult + '"');
typeheadEl.inputReactiveForms.sendKeys(data.inputText);
getItemNumberInDropdown(1).click();
expect(typeheadEl.modelReactiveForms.getText()).toBe('Model: ' + '"' + data.expectedResult + '"');
typeheadEl.inputGroupingResults.sendKeys(data.inputText);
getItemNumberInDropdown(2).click();
expect(typeheadEl.modelGroupingResults.getText()).toBe('Model: ' + '"' + data.expectedResult + '"');
});
});
it('Check items in Static array', () => {
typeheadEl.inputStatic.clear();
typeheadEl.inputStatic.sendKeys('a');
typeheadEl.staticArrayAlabama.click();
expect(typeheadEl.modelStatic.getText()).toContain('Alabama');
});
it('Check items in Item template', () => {
typeheadEl.inputTemplate.clear();
typeheadEl.inputTemplate.sendKeys('a');
typeheadEl.staticArrayAlabama.click();
expect(typeheadEl.modelStatic.getText()).toContain('Alabama');
});
it('Check items in Option field', () => {
typeheadEl.inputOption.clear();
typeheadEl.inputOption.sendKeys('a');
typeheadEl.staticArrayAlabama.click();
expect(typeheadEl.modelOption.getText()).toContain('Alabama');
});
it('Check unfounded item in Async data results', () => {
typeheadEl.inputAsynchronous.clear();
typeheadEl.inputAsynchronous.sendKeys('1');
expect(typeheadEl.errorMessageNoResultsFound.getText()).toContain('No Results Found');
});
it('Check dropdown list "Reactive forms" for empty value Model: (null)', () => {
browser.refresh();
expect(typeheadEl.modelReactiveForms.getText()).toEqual('Model: null');
});
it('Check grouping option at list "Grouping results"', () => {
typeheadEl.inputGroupingResults.sendKeys('a');
expect(typeheadEl.dropdownHeader.isDisplayed()).toBe(true);
});
});