131 lines
3.6 KiB
JavaScript
131 lines
3.6 KiB
JavaScript
/* global module expect require process client */
|
|
|
|
const {
|
|
goHome, randomUsername, randomPassword, randomEmail
|
|
} = require('./helper.js');
|
|
|
|
let firstName;
|
|
let lastName;
|
|
let pass;
|
|
let email;
|
|
|
|
const setUserValues = (isEdit) => {
|
|
client.waitForVisible('input[name="firstName"]', 5000);
|
|
firstName = randomUsername();
|
|
lastName = randomUsername();
|
|
email = randomEmail();
|
|
client.setValue('input[name="firstName"]', firstName);
|
|
client.setValue('input[name="lastName"]', lastName);
|
|
client.setValue('input[name="emailAddress"]', email);
|
|
if (isEdit) {
|
|
client.setValue('input[name="currentPassword"]', pass);
|
|
pass = randomPassword();
|
|
client.setValue('input[name="newPassword"]', pass);
|
|
} else {
|
|
pass = randomPassword();
|
|
client.setValue('input[name="password"]', pass);
|
|
}
|
|
};
|
|
|
|
module.exports = function doSteps(notos) {
|
|
this.Given(/^I am on the home page$/, () => {
|
|
goHome(client);
|
|
});
|
|
|
|
function register() {
|
|
if (client.isVisible('#logout')) {
|
|
client.click('#logout');
|
|
}
|
|
client.waitForVisible('#signup', 5000);
|
|
client.click('#signup');
|
|
setUserValues();
|
|
if (!notos) {
|
|
client.click('input[name="tos"]');
|
|
}
|
|
client.click('#signUpSubmit');
|
|
}
|
|
|
|
this.Given(/^I have an account and I logged in$/, () => {
|
|
register();
|
|
});
|
|
|
|
function checkName() {
|
|
client.waitForVisible('#profile', 5000);
|
|
client.waitForText('#profile', firstName);
|
|
client.waitForText('#profile', lastName);
|
|
}
|
|
|
|
this.Then(/^I should be logged in$/, () => {
|
|
client.waitUntil(() => client.isVisible('#logout') === true, 10000);
|
|
});
|
|
|
|
/* this.Given(/^I am signed out$/, () => {
|
|
* client.waitUntil(() => client.isVisible('#logout') === true, 10000);
|
|
* });
|
|
*/
|
|
|
|
function closeAlert() {
|
|
// client.waitForVisible('.bert-alert', 5000);
|
|
// client.click('.bert-content');
|
|
client.waitUntil(() => client.isVisible('.bert-alert') === false, 10000);
|
|
}
|
|
|
|
this.When(/^I sign out$/, () => {
|
|
if (client.isVisible('.bert-alert')) {
|
|
client.waitUntil(() => client.isVisible('.bert-alert') === false, 10000);
|
|
}
|
|
client.waitForVisible('#logout', 10000);
|
|
client.click('#logout');
|
|
client.waitForVisible('#login', 10000);
|
|
});
|
|
|
|
function login(badpass) {
|
|
client.waitForVisible('#login', 10000);
|
|
client.waitUntil(() => client.isVisible('.bert-alert') === false, 10000);
|
|
client.click('#login');
|
|
client.waitForVisible('#loginSubmit', 5000);
|
|
client.setValue('input[name="emailAddress"]', email);
|
|
client.setValue('input[name="password"]', badpass ? randomPassword() : pass);
|
|
client.click('#loginSubmit');
|
|
closeAlert();
|
|
}
|
|
|
|
this.When(/^I enter my email and password$/, () => {
|
|
login();
|
|
});
|
|
|
|
this.Then(/^I can edit my profile$/, () => {
|
|
client.waitForVisible('#profile', 5000);
|
|
client.click('#profile');
|
|
setUserValues(true);
|
|
client.click('#profileSubmit');
|
|
closeAlert();
|
|
checkName();
|
|
});
|
|
|
|
this.When(/^I enter incorrect authentication information$/, () => {
|
|
login(true);
|
|
});
|
|
|
|
this.Then(/^I should see a user not found error$/, () => {
|
|
client.waitForVisible('.alert-danger', 10000, true);
|
|
});
|
|
|
|
this.Given(/^I register with some name, password and email$/, () => {
|
|
register();
|
|
});
|
|
|
|
this.Then(/^I should be registered$/, () => {
|
|
client.waitForVisible('.bert-alert', 10000, true);
|
|
closeAlert();
|
|
});
|
|
|
|
this.Given(/^I register with some name, password and email but without accept conditions$/, () => {
|
|
register(true);
|
|
});
|
|
|
|
this.Then(/^I shouldn't be registered$/, () => {
|
|
client.waitForVisible('.bert-alert', 10000, true);
|
|
client.waitForVisible('#login', 10000, true);
|
|
});
|
|
};
|