64 lines
2.3 KiB
TypeScript
64 lines
2.3 KiB
TypeScript
import { browser, element, by } from 'protractor';
|
|
import { appLang, describeIf } from '../protractor-helpers';
|
|
|
|
describeIf(appLang.appIsTs || appLang.appIsJs, 'Forms Tests', function () {
|
|
|
|
beforeEach(function () {
|
|
browser.get('');
|
|
});
|
|
|
|
it('should display correct title', function () {
|
|
expect(element.all(by.css('h1')).get(0).getText()).toEqual('Hero Form');
|
|
});
|
|
|
|
|
|
it('should not display message before submit', function () {
|
|
let ele = element(by.css('h2'));
|
|
expect(ele.isDisplayed()).toBe(false);
|
|
});
|
|
|
|
it('should hide form after submit', function () {
|
|
let ele = element.all(by.css('h1')).get(0);
|
|
expect(ele.isDisplayed()).toBe(true);
|
|
let b = element.all(by.css('button[type=submit]')).get(0);
|
|
b.click().then(function() {
|
|
expect(ele.isDisplayed()).toBe(false);
|
|
});
|
|
});
|
|
|
|
it('should display message after submit', function () {
|
|
let b = element.all(by.css('button[type=submit]')).get(0);
|
|
b.click().then(function() {
|
|
expect(element(by.css('h2')).getText()).toContain('You submitted the following');
|
|
});
|
|
});
|
|
|
|
it('should hide form after submit', function () {
|
|
let alterEgoEle = element.all(by.css('input[name=alterEgo]')).get(0);
|
|
expect(alterEgoEle.isDisplayed()).toBe(true);
|
|
let submitButtonEle = element.all(by.css('button[type=submit]')).get(0);
|
|
submitButtonEle.click().then(function() {
|
|
expect(alterEgoEle.isDisplayed()).toBe(false);
|
|
});
|
|
});
|
|
|
|
it('should reflect submitted data after submit', function () {
|
|
let test = 'testing 1 2 3';
|
|
let newValue: string;
|
|
let alterEgoEle = element.all(by.css('input[name=alterEgo]')).get(0);
|
|
alterEgoEle.getAttribute('value').then(function(value: string) {
|
|
alterEgoEle.sendKeys(test);
|
|
newValue = value + test;
|
|
expect(alterEgoEle.getAttribute('value')).toEqual(newValue);
|
|
let b = element.all(by.css('button[type=submit]')).get(0);
|
|
return b.click();
|
|
}).then(function() {
|
|
let alterEgoTextEle = element(by.cssContainingText('div', 'Alter Ego'));
|
|
expect(alterEgoTextEle.isPresent()).toBe(true, 'cannot locate "Alter Ego" label');
|
|
let divEle = element(by.cssContainingText('div', newValue));
|
|
expect(divEle.isPresent()).toBe(true, 'cannot locate div with this text: ' + newValue);
|
|
});
|
|
});
|
|
});
|
|
|