Skip to content

Commit c6317c1

Browse files
author
Krzysztof
committed
*
1 parent 493f82f commit c6317c1

11 files changed

+183
-7
lines changed

configuration/globals.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ module.exports = {
2424

2525
baseUrl: [
2626
'http://www.way2automation.com/angularjs-protractor/registeration/#/login',
27-
'http://www.way2automation.com/angularjs-protractor/multiform/#/form/payment',
28-
'http://www.way2automation.com/angularjs-protractor/webtables/'
27+
'https://www.way2automation.com/angularjs-protractor/multiform/#/form/payment',
28+
'http://www.way2automation.com/angularjs-protractor/webtables/',
2929
],
3030

3131
abortOnAssertionFailure: true,

example.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
2+
3+
4+
5+

nightwatch.conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const packageJson = require('./package.json');
22
const screenshotPath = './screenshots/' + packageJson.version + '/';
33

44
const config = {
5-
src_folders: ['tests'],
5+
src_folders: ['tests/multiformTests.js'], // 'tests'
66
output_folder: './reports/',
77
custom_commands_path: './commands/',
88
custom_assertions_path: './assertions/',

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@
1919
"path": ">=0.12.7",
2020
"selenium-download": ">=2.0.16",
2121
"selenium-server": ">=3.141.59"
22+
2223
}
2324
}

pages/baseMethods.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,5 @@ class BaseMethods {
3636
}
3737
}
3838

39+
3940
module.exports.BaseMethods = BaseMethods;

pages/loginPage/loginPage.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
const baseMethods = require('../baseMethods.js').BaseMethods;
2+
const loginSelectors = require('./loginPageSelectors.js');
3+
4+
class LoginPage extends baseMethods {
5+
constructor(browser) {
6+
super(browser);
7+
}
8+
9+
login(
10+
loginSelector = loginSelectors.username,
11+
login = 'angular',
12+
passSelector = loginSelectors.password,
13+
pass = 'password',
14+
baseUsernameSelector = loginSelectors.baseUsername,
15+
baseUsername = 'Przykładowy użytkownik',
16+
loginBtnSelector = loginSelectors.loginBtn
17+
) {
18+
this.browser
19+
.clearValue(loginSelector)
20+
.setValue(loginSelector, login)
21+
.clearValue(passSelector)
22+
.setValue(passSelector, pass)
23+
.clearValue(baseUsernameSelector)
24+
.setValue(baseUsernameSelector, baseUsername)
25+
.click(loginBtnSelector);
26+
}
27+
}
28+
29+
30+
module.exports.LoginPage = LoginPage;

pages/loginPage/loginPageSelectors.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module.exports = {
2+
username: '#username',
3+
password: '#password',
4+
baseUsername: '#formly_1_input_username_0',
5+
loginBtn: '.btn.btn-danger',
6+
userNameWalidationText:
7+
'body > div.jumbotron > div > div > div > form > div:nth-child(1) > div > div',
8+
passWalidationText:
9+
'body > div.jumbotron > div > div > div > form > div:nth-child(2) > div > div',
10+
11+
};

pages/multiform/multiformPage.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const multiformSelectors = require('./multiformSelectors.js');
2+
const baseMethods = require('../baseMethods.js').BaseMethods;
3+
4+
class MultiformPage extends baseMethods {
5+
constructor(browser) {
6+
super(browser);
7+
}
8+
9+
clickSubmitBtn() {
10+
this.browser.click(multiformSelectors.nextBtn);
11+
}
12+
13+
submitProfile(callback) {
14+
this.browser.setValue(multiformSelectors.name, 'angular');
15+
this.browser.setValue(multiformSelectors.email, 'password');
16+
17+
this.clickSubmitBtn();
18+
19+
return this;
20+
}
21+
22+
getMultiformText(
23+
textElemSelector = multiformSelectors.testCompleteText,
24+
callback
25+
) {
26+
this.browser.getText(textElemSelector, callback);
27+
28+
return this;
29+
}
30+
31+
clickProfile() {
32+
this.browser.click(multiformSelectors.profile);
33+
34+
return this;
35+
}
36+
37+
consoleChoice(console = 'ps4') {
38+
if (console === 'ps4') {
39+
this.browser.click(multiformSelectors.psx);
40+
} else if (console === 'xbox') {
41+
this.browser.click(multiformSelectors.xbox);
42+
} else {
43+
throw Error('Console ERROR');
44+
}
45+
46+
return this;
47+
}
48+
}
49+
50+
module.exports.MultiformPage = MultiformPage;

pages/multiform/multiformSelectors.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module.exports = {
2+
profile: '#status-buttons > a:nth-child(1) > span',
3+
name: '#form-views > div:nth-child(1) > input',
4+
email: '#form-views > div:nth-child(2) > input',
5+
nextBtn: '#form-views > div.form-group.row.ng-scope > div > a',
6+
xbox: '#form-views > div:nth-child(2) > div:nth-child(1) > label',
7+
psx: '#form-views > div:nth-child(2) > div:nth-child(2) > label',
8+
testCompleteText: '#form-views > div > h3',
9+
};

tests/demoTests.js

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const loginPage = require('../pages/loginPage/loginPage.js').LoginPage;
2+
13
module.exports = {
24
afterEach: function (browser, done) {
35
browser.end(function () {
@@ -8,10 +10,47 @@ module.exports = {
810
'Demo multiform test': (browser) => {
911
browser
1012
.url(
11-
'http://www.way2automation.com/angularjs-protractor/registeration/#/login'
13+
'https://www.way2automation.com/angularjs-protractor/multiform/#/form/profile'
1214
)
13-
.assert.urlContains(
14-
'www.way2automation.com/angularjs-protractor/registeration/#/login'
15-
);
15+
16+
17+
18+
19+
browser.assert.title('Protractor practice website - Multiform');
20+
1621
},
22+
23+
// 'Demo login test': (browser) => {
24+
// browser.url(
25+
// 'http://www.way2automation.com/angularjs-protractor/registeration/#/login'
26+
// );
27+
// new loginPage().login();
28+
29+
// browser.assert.title('Protractor practice website - Registration');
30+
// },
31+
32+
// 'Demo logout test': (browser) => {
33+
// browser
34+
// .url(
35+
// 'http://www.way2automation.com/angularjs-protractor/registeration/#/login'
36+
// )
37+
38+
// .clearValue('#username')
39+
// .setValue('#username', 'angular')
40+
// .clearValue('#password')
41+
// .setValue('#password', 'password')
42+
// .clearValue('#formly_1_input_username_0')
43+
// .setValue('#formly_1_input_username_0', 'Przykładowy użytkownik')
44+
45+
// .click('.btn.btn-danger');
46+
47+
// if (browser.assert.containsText('.ng-scope', 'Home')) {
48+
// browser
49+
// .click('p.ng-scope:nth-child(3) > a:nth-child(1)')
50+
// // .pause(5000)
51+
// .assert.urlContains(
52+
// 'www.way2automation.com/angularjs-protractor/registeration/#/login'
53+
// );
54+
// }
55+
// },
1756
};

tests/multiformTests.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
const submitPage = require('../pages/multiform/multiformPage').MultiformPage;
2+
const logger = require('../configuration/logger/log4js.js').logAll;
3+
const multiformSelectors = require('../pages/multiform/multiformSelectors.js');
4+
5+
module.exports = {
6+
afterEach: function (browser, done) {
7+
browser.end(function () {
8+
done();
9+
});
10+
},
11+
12+
'Demo multiform test': (browser) => {
13+
new submitPage(browser)
14+
.getUrl(browser.globals.baseUrl[1])
15+
.clickProfile()
16+
.submitProfile()
17+
.consoleChoice()
18+
.clickSubmitBtn();
19+
browser.pause(2000).getText(multiformSelectors.testCompleteText,
20+
21+
22+
(text) => {
23+
browser.assert.strictEqual(text.value, 'Test Completed, WooHoo!')
24+
25+
});
26+
27+
28+
29+
},
30+
};

0 commit comments

Comments
 (0)