Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit eab5bdd

Browse files
oodamienghillert
authored andcommitted
E2E Apps Tests
1 parent e358e0e commit eab5bdd

17 files changed

+1285
-78
lines changed

ui/e2e/apps/app-details.po.ts

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { browser, by, element } from 'protractor';
2+
3+
/**
4+
* E2E Page Object for app details page.
5+
*
6+
* @author Damien Vitrac
7+
*/
8+
export class AppDetailsPage {
9+
10+
/**
11+
* Navigates to the app details page.
12+
* @returns {wdpromise.Promise<any>}
13+
*/
14+
navigateTo(type, name) {
15+
return browser.get(`#/apps/${type}/${name}`);
16+
}
17+
18+
/**
19+
* Retrieves text of the title.
20+
* @returns {any}
21+
*/
22+
getHeaderText() {
23+
return element(by.css('.heading h1')).getText();
24+
}
25+
26+
/**
27+
* Retrieves text of the app details info.
28+
* @returns {any}
29+
*/
30+
getInfo() {
31+
return element(by.css('.app-details-info')).getText();
32+
}
33+
34+
/**
35+
* Retrieves properties of the app details info.
36+
* @returns {any}
37+
*/
38+
getProperties() {
39+
return element.all(by.css('#table-properties tbody tr'));
40+
}
41+
42+
/**
43+
* Click on cancel button.
44+
* @returns {any}
45+
*/
46+
getCancel() {
47+
return element(by.css('#back-button'));
48+
49+
}
50+
51+
}

ui/e2e/apps/app-register.po.ts

Lines changed: 0 additions & 25 deletions
This file was deleted.

ui/e2e/apps/app-versions.po.ts

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import { browser, by, element } from 'protractor';
2+
3+
/**
4+
* E2E Page Object for app details page.
5+
*
6+
* @author Damien Vitrac
7+
*/
8+
export class AppVersionsModal {
9+
10+
/**
11+
* Retrieves text of the title.
12+
* @returns {any}
13+
*/
14+
getHeaderText() {
15+
return element(by.css('.modal-header h4')).getText();
16+
}
17+
18+
/**
19+
* Get Modal
20+
* @returns {ElementFinder}
21+
*/
22+
getModal() {
23+
return element(by.css('#app-versions'));
24+
}
25+
26+
/**
27+
* Get footer cancel button
28+
* @returns {ElementFinder}
29+
*/
30+
getFooterCancel() {
31+
return element(by.css('#app-versions .modal-footer button'));
32+
}
33+
34+
/**
35+
* Get header cancel button
36+
* @returns {ElementFinder}
37+
*/
38+
getHeaderCancel() {
39+
return element(by.css('#app-versions .modal-header .close'));
40+
}
41+
42+
/**
43+
* Get table rows
44+
* @returns {ElementArrayFinder}
45+
*/
46+
getTableRows() {
47+
return element.all(by.css('#app-versions #table-versions tbody tr'));
48+
}
49+
50+
/**
51+
* Get the buttons to a row
52+
* @param {number} index
53+
* @returns {ElementArrayFinder}
54+
*/
55+
getRowButtons(index: number) {
56+
return this.getTableRows().get(index).all(by.css('.actions button'));
57+
}
58+
59+
/**
60+
* Set a default version to a row
61+
* Validate the confirm modal
62+
* @param {number} index
63+
*/
64+
setMakeDefault(index: number) {
65+
this.getRowButtons(index).get(0).click();
66+
browser.sleep(400);
67+
element(by.css('#modal-confirm')).element(by.buttonText('Validate')).click();
68+
browser.sleep(200);
69+
}
70+
71+
/**
72+
* Destroy an application
73+
* Validate the confirm modal
74+
* @param {number} index
75+
*/
76+
setDestroy(index: number) {
77+
this.getRowButtons(index).get(1).click();
78+
browser.sleep(400);
79+
element(by.css('#modal-confirm')).element(by.buttonText('Unregister version')).click();
80+
browser.sleep(200);
81+
}
82+
83+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import { browser, by, element, protractor } from 'protractor';
2+
3+
/**
4+
* E2E Page Object for apps page.
5+
*
6+
* @author Damien Vitrac
7+
*/
8+
export class AppsBulkImportUriPage {
9+
10+
/**
11+
* Navigates to the apps/register-apps page.
12+
* @returns {wdpromise.Promise<any>}
13+
*/
14+
navigateTo() {
15+
return browser.get('#/apps/bulk-import-apps/uri');
16+
}
17+
18+
/**
19+
* Retrieves text of the title for the page.
20+
* @returns {any}
21+
*/
22+
getHeaderText() {
23+
return element(by.css('app-root h1')).getText();
24+
}
25+
26+
/**
27+
* Set URI
28+
* @param {string} uri
29+
*/
30+
setUri(uri: string) {
31+
element(by.css('#uriInput')).sendKeys(uri);
32+
browser.sleep(400);
33+
}
34+
35+
/**
36+
* Get the submit button
37+
* @returns {ElementFinder}
38+
*/
39+
getSubmit() {
40+
return element(by.name(`submit`));
41+
}
42+
43+
/**
44+
* Get the cancel button
45+
*/
46+
getCancel() {
47+
return element(by.name(`cancel`));
48+
}
49+
50+
}

ui/e2e/apps/app-register.e2e-spec.ts renamed to ui/e2e/apps/apps-register.e2e-spec.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
import {AppRegisterPage} from './app-register.po';
2-
31
/**
42
* E2E spec for app registration page.
53
*
64
* @author Glenn Renfro
75
*/
6+
7+
import { AppsRegisterPage } from './apps-register.po';
8+
89
describe('E2E spec for app registration page', () => {
9-
let page: AppRegisterPage;
10+
let page: AppsRegisterPage;
1011

1112
beforeEach(() => {
12-
page = new AppRegisterPage();
13+
page = new AppsRegisterPage();
1314
});
1415

1516
it('should display app registration title', () => {

ui/e2e/apps/apps-register.po.ts

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import { browser, by, element } from 'protractor';
2+
3+
/**
4+
* E2E Page Object for apps page.
5+
*
6+
* @author Glenn Renfro
7+
* @author Damien Vitrac
8+
*/
9+
export class AppsRegisterPage {
10+
11+
/**
12+
* Navigates to the apps/register-apps page.
13+
* @returns {wdpromise.Promise<any>}
14+
*/
15+
navigateTo() {
16+
return browser.get('#/apps/register-apps');
17+
}
18+
19+
/**
20+
* Retrieves text of the title for the page.
21+
* @returns {any}
22+
*/
23+
getHeaderText() {
24+
return element(by.css('app-root h1')).getText();
25+
}
26+
27+
/**
28+
* Set form
29+
* @param {number} index
30+
* @param {string} name
31+
* @param {string} type
32+
* @param {string} uri
33+
* @param {string} metaUri
34+
*/
35+
setForm(index: number, name: string, type: string, uri: string, metaUri: string) {
36+
element(by.name(`name${index}`)).sendKeys(name);
37+
element(by.name(`type${index}`)).sendKeys(type);
38+
element(by.name(`uri${index}`)).sendKeys(uri);
39+
element(by.name(`metaDataUri${index}`)).sendKeys(metaUri);
40+
browser.sleep(100);
41+
}
42+
43+
/**
44+
* Get the submit button
45+
* @returns {ElementFinder}
46+
*/
47+
getSubmit() {
48+
return element(by.name(`register`));
49+
}
50+
51+
/**
52+
* Get the add button
53+
* @returns {ElementFinder}
54+
*/
55+
getAdd() {
56+
return element(by.name(`add-form`));
57+
}
58+
59+
/**
60+
* Get the cancel button
61+
* @returns {ElementFinder}
62+
*/
63+
getCancel() {
64+
return element(by.name(`cancel`));
65+
}
66+
67+
}

0 commit comments

Comments
 (0)