Skip to content

Commit 17e47f5

Browse files
committed
Added simple tests & minor fixes
1 parent 2ad062f commit 17e47f5

File tree

52 files changed

+1245
-108
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1245
-108
lines changed

eform-client/angular.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@
2323
"polyfills": "src/polyfills.ts",
2424
"tsConfig": "src/tsconfig.app.json",
2525
"assets": [
26-
"src/favicon.ico",
27-
"src/assets"
26+
{ "glob": "**/*", "input": "src/assets/", "output": "/assets/" },
27+
{ "glob": "**/assets/**", "input": "src/app/plugins/modules", "output": "/assets/plugins/" },
28+
{ "glob": "favicon.ico", "input": "/src", "output": "/" }
2829
],
2930
"styles": [
3031
"port/angular-bootstrap-md/scss/bootstrap/bootstrap.scss",
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
export default {
2+
LoginPage: {
3+
originalMainText: 'Microting eForm',
4+
customMainText: 'Custom login page main text',
5+
originalSecondaryText: 'No more paper-forms and back-office data entry',
6+
customSecondaryText: 'Custom login page secondary text'
7+
},
8+
SiteHeader: {
9+
originalMainText: 'Microting eForm',
10+
customMainText: 'No more paper-forms and back-office data entry',
11+
originalSecondaryText: 'No more paper-forms and back-office data entry',
12+
customSecondaryText: 'Custom site header secondary text'
13+
}
14+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
export default {
2+
username: 'admin',
3+
password: 'Qq1234567$',
4+
5+
firstName: 'John',
6+
lastNAme: 'Smith',
7+
dataSourceSDK: 'Data Source=.\\SQLEXPRESS',
8+
initialCatalogueSDK: 'eFormSDK',
9+
authenticationTypeSDK: 'Integrated Security=True',
10+
dataSourceMain: 'Data Source=.\\SQLEXPRESS',
11+
token: 'abc1234567890abc1234567890abcdef',
12+
initialCatalogueMain: 'eFormMain',
13+
authenticationTypeMain: 'Integrated Security=True',
14+
languageOptions: {
15+
english: 'English',
16+
danish: 'Danish'
17+
}
18+
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default {};
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export default {
2+
username: 'admin',
3+
password: 'Qq1234567$'
4+
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default {};
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import {Guid} from 'guid-typescript';
2+
3+
export function generateRandmString() {
4+
return Guid.create().toString();
5+
}
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
import {PageWithNavbarPage} from './PageWithNavbar.page';
2+
3+
export class ApplicationSettingsPage extends PageWithNavbarPage {
4+
constructor() {
5+
super();
6+
this.LoginPage = new LoginPageSettings();
7+
this.SiteHeader = new SiteHeaderSettings();
8+
}
9+
10+
public get saveBtn() {
11+
return browser.element('#applicationSettingsSaveBtn');
12+
}
13+
14+
public get siteHeaderMainText() {
15+
return browser.element('#main-header-text');
16+
}
17+
18+
public get siteHeaderSecondaryText() {
19+
return browser.element('#secondary-header-text');
20+
}
21+
22+
public get siteHeaderImage() {
23+
return browser.element('#site-header-image');
24+
}
25+
26+
27+
public LoginPage: LoginPageSettings;
28+
public SiteHeader: SiteHeaderSettings;
29+
30+
public save() {
31+
this.saveBtn.click();
32+
browser.pause(25000);
33+
}
34+
}
35+
36+
class LoginPageSettings {
37+
public get mainTextInput() {
38+
return browser.element('#mainTextLoginPage');
39+
}
40+
41+
public get secondaryTextInput() {
42+
return browser.element('#secondaryTextLoginPage');
43+
}
44+
45+
public get imageUploadBtn() {
46+
return browser.element('#loginPageImageUploadBtn');
47+
}
48+
49+
public get mainTextVisibilityToggleBtn() {
50+
return browser.element('#loginPageMainTextVisibilityToggler');
51+
}
52+
53+
public get secondaryTextVisibilityToggleBtn() {
54+
return browser.element('#loginPageSecondaryTextVisibilityToggler');
55+
}
56+
57+
public get imageVisibilityToggler() {
58+
return browser.element('#loginPageImageVisibilityToggler');
59+
}
60+
61+
public get resetBtn() {
62+
return browser.element('#loginPageReset');
63+
}
64+
65+
public reset() {
66+
this.resetBtn.click();
67+
browser.pause(25000);
68+
browser.refresh();
69+
}
70+
}
71+
72+
class SiteHeaderSettings {
73+
public get mainTextInput() {
74+
return browser.element('#headerSettingsMainText');
75+
}
76+
77+
public get secondaryTextInput() {
78+
return browser.element('#headerSettingsSecondaryText');
79+
}
80+
81+
public get imageUploadBtn() {
82+
return browser.element('#siteHeaderUploadBtn');
83+
}
84+
85+
public get mainTextVisibilityToggleBtn() {
86+
return browser.element('#siteHeaderMainTextToggler');
87+
}
88+
89+
public get secondaryTextVisibilityToggleBtn() {
90+
return browser.element('#siteHeaderSecondaryTextToggler');
91+
}
92+
93+
public get imageVisibilityToggler() {
94+
return browser.element('#siteHeaderImageVisibilityToggler');
95+
}
96+
97+
public get resetBtn() {
98+
return browser.element('#siteHeaderReset');
99+
}
100+
101+
public reset() {
102+
this.resetBtn.click();
103+
browser.pause(25000);
104+
browser.refresh();
105+
}
106+
}
107+
108+
const applicationSettingsPage = new ApplicationSettingsPage();
109+
export default applicationSettingsPage;
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
import Page from './Page';
2+
import DatabaseConfigurationConstants from '../Constants/DatabaseConfigurationConstants';
3+
4+
class DatabasePage extends Page {
5+
constructor() {
6+
super();
7+
}
8+
9+
public get usernameInput() {
10+
return browser.element('#userName');
11+
}
12+
13+
public get passwordInput() {
14+
return browser.element('#password');
15+
}
16+
17+
public get emailInput() {
18+
return browser.element('#email');
19+
}
20+
21+
public get firstNameInput() {
22+
return browser.element('#firstName');
23+
}
24+
25+
public get lastNameInput() {
26+
return browser.element('#lastName');
27+
}
28+
29+
public get dataSourceSdkInput() {
30+
return browser.element('#sourceSDK');
31+
}
32+
33+
public get initialCatalogSdkInput() {
34+
return browser.element('#catalogueSDK');
35+
}
36+
37+
public get authenticationTypeSdkInput() {
38+
return browser.element('#authSDK');
39+
}
40+
41+
public get tokenInput() {
42+
return browser.element('#token');
43+
}
44+
45+
public get dataSourceMainInput() {
46+
return browser.element('#sourceMain');
47+
}
48+
49+
public get initialCatalogMainInput() {
50+
return browser.element('#catalogueMain');
51+
}
52+
53+
public get authenticationTypeMainInput() {
54+
return browser.element('#authMain');
55+
}
56+
57+
public get languageDropdown() {
58+
return browser.element('#languageSelector');
59+
}
60+
61+
public get saveBtn() {
62+
return browser.element('#save');
63+
}
64+
65+
public save() {
66+
this.saveBtn.click();
67+
}
68+
69+
public selectLanguage(language) {
70+
this.languageDropdown.click();
71+
browser.element(`//*[@id="languageSelector"]//*[text()="${language}"]`).click();
72+
}
73+
74+
public configure(language) {
75+
this.usernameInput.setValue(DatabaseConfigurationConstants.username);
76+
this.passwordInput.setValue(DatabaseConfigurationConstants.password);
77+
this.emailInput.setValue(DatabaseConfigurationConstants.email);
78+
this.firstNameInput.setValue(DatabaseConfigurationConstants.firstName);
79+
this.lastNameInput.setValue(DatabaseConfigurationConstants.lastNAme);
80+
this.dataSourceSdkInput.setValue(DatabaseConfigurationConstants.dataSourceSDK);
81+
this.initialCatalogSdkInput.setValue(DatabaseConfigurationConstants.initialCatalogueSDK);
82+
this.authenticationTypeSdkInput.setValue(DatabaseConfigurationConstants.authenticationTypeSDK);
83+
this.tokenInput.setValue(DatabaseConfigurationConstants.token);
84+
this.dataSourceMainInput.setValue(DatabaseConfigurationConstants.dataSourceMain);
85+
this.initialCatalogMainInput.setValue(DatabaseConfigurationConstants.initialCatalogueMain);
86+
this.authenticationTypeMainInput.setValue(DatabaseConfigurationConstants.authenticationTypeMain);
87+
this.selectLanguage(language);
88+
}
89+
}
90+
91+
const databasePage = new DatabasePage();
92+
export default databasePage;
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
import {PageWithNavbarPage} from './PageWithNavbar.page';
2+
3+
class DeviceUsersPage extends PageWithNavbarPage {
4+
constructor() {
5+
super();
6+
}
7+
8+
public get newDeviceUserBtn() {
9+
return browser.element('#newDeviceUserBtn');
10+
}
11+
12+
public get createFirstNameInput() {
13+
return browser.element('#firstName');
14+
}
15+
16+
public get createLastNameInput() {
17+
return browser.element('#lastName');
18+
}
19+
20+
public get saveCreateBtn() {
21+
return browser.element('#saveCreateBtn');
22+
}
23+
24+
public get cancelCreateBtn() {
25+
return browser.element('#cancelCreateBtn');
26+
}
27+
28+
public get editFirstNameInput() {
29+
return browser.element('#editFirstNameInput');
30+
}
31+
32+
public get editLastNameInput() {
33+
return browser.element('#editLastNameInput');
34+
}
35+
36+
public get saveEditBtn() {
37+
return browser.element('#saveEditBtn');
38+
}
39+
40+
public get cancelEditBtn() {
41+
return browser.element('#cancelEditBtn');
42+
}
43+
44+
public get saveDeleteBtn() {
45+
return browser.element('#saveDeleteBtn');
46+
}
47+
48+
public get cancelDeleteBtn() {
49+
return browser.element('#cancelDeleteBtn');
50+
}
51+
52+
public get rowNum(): number {
53+
return $$('#tableBody > tr').length;
54+
}
55+
56+
getDeviceUser(num): DeviceUsersRowObject {
57+
return new DeviceUsersRowObject(num);
58+
}
59+
60+
getDeviceUsersList(maxNum): DeviceUsersRowObject[] {
61+
const users: DeviceUsersRowObject[] = [];
62+
for (let i = 1; i <= maxNum; i++) {
63+
users[i - 1] = new DeviceUsersRowObject(i);
64+
}
65+
return users;
66+
}
67+
68+
public createNewDeviceUser(firstName = '', lastName = '') {
69+
this.newDeviceUserBtn.click();
70+
browser.pause(6000);
71+
this.createFirstNameInput.setValue(firstName);
72+
this.createLastNameInput.setValue(lastName);
73+
this.saveCreateBtn.click();
74+
browser.pause(16000);
75+
}
76+
77+
public editDeviceUser(deviceUser: DeviceUsersRowObject, name = '', surname = '') {
78+
deviceUser.editBtn.click();
79+
browser.pause(5000);
80+
if (name != null) {
81+
this.editFirstNameInput.click();
82+
this.editFirstNameInput.clearElement();
83+
this.editFirstNameInput.setValue(name);
84+
}
85+
if (surname != null) {
86+
this.editLastNameInput.click();
87+
this.editLastNameInput.clearElement();
88+
this.editLastNameInput.setValue(surname);
89+
}
90+
this.saveEditBtn.click();
91+
browser.pause(12000);
92+
}
93+
}
94+
95+
const deviceUsersPage = new DeviceUsersPage();
96+
export default deviceUsersPage;
97+
98+
export class DeviceUsersRowObject {
99+
constructor(rowNumber) {
100+
this.siteId = +$$('#deviceUserId')[rowNumber - 1].getText();
101+
this.firstName = $$('#deviceUserFirstName')[rowNumber - 1].getText();
102+
this.lastName = $$('#deviceUserLastName')[rowNumber - 1].getText();
103+
this.editBtn = $$('#editDeviceUserBtn')[rowNumber - 1];
104+
this.deleteBtn = $$('#deleteDeviceUserBtn')[rowNumber - 1];
105+
}
106+
107+
siteId: number;
108+
firstName;
109+
lastName;
110+
editBtn;
111+
deleteBtn;
112+
}

0 commit comments

Comments
 (0)