59 lines
2.3 KiB
TypeScript
59 lines
2.3 KiB
TypeScript
import {browser, by, element, ElementFinder, ExpectedConditions as EC} from 'protractor';
|
|
|
|
browser.waitForAngularEnabled(false);
|
|
describe('Element E2E Tests', function () {
|
|
describe('Hello World Elements', () => {
|
|
beforeEach(() => browser.get('hello-world.html'));
|
|
|
|
describe('(with default CD strategy and view encapsulation)', () => {
|
|
const helloWorldEl = element(by.css('hello-world-el'));
|
|
|
|
it('should display "Hello World!"', function () {
|
|
expect(helloWorldEl.getText()).toBe('Hello World!');
|
|
});
|
|
|
|
it('should display "Hello Foo!" via name attribute', function () {
|
|
const input = element(by.css('input[type=text]'));
|
|
input.sendKeys('Foo');
|
|
|
|
// Make tests less flaky on CI by waiting up to 5s for the element text to be updated.
|
|
browser.wait(EC.textToBePresentInElement(helloWorldEl, 'Hello Foo!'), 5000);
|
|
});
|
|
});
|
|
|
|
describe('(with `OnPush` CD strategy)', () => {
|
|
const helloWorldOnpushEl = element(by.css('hello-world-onpush-el'));
|
|
|
|
it('should display "Hello World!"', function () {
|
|
expect(helloWorldOnpushEl.getText()).toBe('Hello World!');
|
|
});
|
|
|
|
it('should display "Hello Foo!" via name attribute', function () {
|
|
const input = element(by.css('input[type=text]'));
|
|
input.sendKeys('Foo');
|
|
|
|
// Make tests less flaky on CI by waiting up to 5s for the element text to be updated.
|
|
browser.wait(EC.textToBePresentInElement(helloWorldOnpushEl, 'Hello Foo!'), 5000);
|
|
});
|
|
});
|
|
|
|
describe('(with `ShadowDom` view encapsulation)', () => {
|
|
const helloWorldShadowEl = element(by.css('hello-world-shadow-el'));
|
|
const getShadowDomText = (el: ElementFinder) =>
|
|
browser.executeScript('return arguments[0].shadowRoot.textContent', el);
|
|
|
|
it('should display "Hello World!"', function () {
|
|
expect(getShadowDomText(helloWorldShadowEl)).toBe('Hello World!');
|
|
});
|
|
|
|
it('should display "Hello Foo!" via name attribute', function () {
|
|
const input = element(by.css('input[type=text]'));
|
|
input.sendKeys('Foo');
|
|
|
|
// Make tests less flaky on CI by waiting up to 5s for the element text to be updated.
|
|
browser.wait(async () => await getShadowDomText(helloWorldShadowEl) === 'Hello Foo!', 5000);
|
|
});
|
|
});
|
|
});
|
|
});
|