Skip to content

Commit

Permalink
Additional e2e tests
Browse files Browse the repository at this point in the history
  • Loading branch information
manuelbl committed Feb 7, 2018
1 parent 7e4eac4 commit 9c8a18d
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 5 deletions.
40 changes: 40 additions & 0 deletions ui/e2e/examples.e2e-spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { ExamplesPage } from './examples.po';
import { protractor } from 'protractor/built/ptor';
import { browser, by, element } from 'protractor';
import { MainPage } from './main.po';

describe('Examples Page', () => {
let page: ExamplesPage;

beforeEach(() => {
page = new ExamplesPage();
});

it('should display examples', () => {
page.navigateTo();
expect(page.getNumAppExamples()).toBeGreaterThan(3);
expect(page.getAppExample(1)).toBeTruthy();
expect(page.getAppExample(2)).toBeTruthy();
expect(page.getAppExample(3)).toBeTruthy();
expect(page.getAppExample(4)).toBeTruthy();
});

it('should display images', () => {
let EC = protractor.ExpectedConditions;
for (let i = 1; i <= 4; i++) {
browser.wait(
() => browser.executeScript(
"return arguments[0].complete && arguments[0].naturalWidth > 0;",
page.getAppExample(i).element(by.css('img')).getWebElement()),
3000
);
}
});

it('should navigate to main page', () => {
page.getUseButton(2).click();
browser.waitForAngular();
let mainPage = new MainPage();
expect(mainPage.getPreviewButton()).toBeTruthy();
});
});
25 changes: 25 additions & 0 deletions ui/e2e/examples.po.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { browser, by, element } from 'protractor';
import { promise } from 'selenium-webdriver';
import { ElementFinder } from 'protractor/built/element';

export class ExamplesPage {
navigateTo(): promise.Promise<any> {
return browser.get('/examples');
}

getNavbarText(): promise.Promise<string> {
return element(by.css('app-root .navbar-button')).getText();
}

getAppExample(index: number): ElementFinder {
return element(by.css('.examples mat-card:nth-child(' + index + ')'));
}

getNumAppExamples(): promise.Promise<number> {
return element.all(by.css('.examples mat-card')).count();
}

getUseButton(index: number): ElementFinder {
return element(by.css('.examples mat-card:nth-child(' + index + ') button'));
}
}
8 changes: 4 additions & 4 deletions ui/e2e/app.e2e-spec.ts → ui/e2e/main.e2e-spec.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { AppPage } from './app.po';
import { MainPage } from './main.po';
import { protractor } from 'protractor/built/ptor';
import { browser, by, element } from 'protractor';

describe('QR Bill App', () => {
let page: AppPage;
describe('Main Page', () => {
let page: MainPage;

beforeEach(() => {
page = new AppPage();
page = new MainPage();
});

it('should display UI', () => {
Expand Down
2 changes: 1 addition & 1 deletion ui/e2e/app.po.ts → ui/e2e/main.po.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { browser, by, element } from 'protractor';

export class AppPage {
export class MainPage {
navigateTo() {
return browser.get('/');
}
Expand Down

0 comments on commit 9c8a18d

Please sign in to comment.