124 lines
4.8 KiB
JavaScript
124 lines
4.8 KiB
JavaScript
|
const I = actor();
|
||
|
|
||
|
module.exports = {
|
||
|
locators: {
|
||
|
addressTitle: '#addressId.form-control',
|
||
|
fName: '#firstName.form-control',
|
||
|
lName: '#lastName.form-control',
|
||
|
address1: '#address1.form-control',
|
||
|
country: '#country.form-control',
|
||
|
state: '#state.form-control',
|
||
|
city: '#city.form-control',
|
||
|
zip: '#zipCode.form-control',
|
||
|
phone: '#phone.form-control',
|
||
|
saveBtn: '.btn.btn-save.btn-block.btn-primary',
|
||
|
nameOnCard: '#cardOwner.form-control',
|
||
|
ccNum: '#cardNumber.form-control',
|
||
|
expMonth: '#month.form-control',
|
||
|
expYear: '#year.form-control',
|
||
|
defaultPayment: '.custom-control-label',
|
||
|
currentPassword: '#currentPassword.form-control',
|
||
|
newPassword: '#newPassword.form-control',
|
||
|
newPasswordConfirm: '#newPasswordConfirm.form-control',
|
||
|
confirmEmail: '#confirmEmail.form-control',
|
||
|
confirmPassword: '#password.form-control',
|
||
|
addNew: '.card-link',
|
||
|
backToAccount: '.text-center.back-to-account-link',
|
||
|
viewAll: '.pull-right',
|
||
|
removeProductBtn: '.remove-btn.remove-payment.btn-light',
|
||
|
removeProductModal: '.modal-content',
|
||
|
removeProductConfirm: '.btn.btn-primary.delete-confirmation-btn',
|
||
|
loggedInAccountNav: '.user.nav-item',
|
||
|
accountLogOut: '.user .popover li'
|
||
|
},
|
||
|
addAddress(addressTitle, fName, lName, address1, country, state, city, zipcode, phone) {
|
||
|
I.fillField(this.locators.addressTitle, addressTitle);
|
||
|
I.fillField(this.locators.fName, fName);
|
||
|
I.fillField(this.locators.lName, lName);
|
||
|
I.fillField(this.locators.address1, address1);
|
||
|
I.selectOption(this.locators.country, country);
|
||
|
I.selectOption(this.locators.state, state);
|
||
|
I.fillField(this.locators.city, city);
|
||
|
I.fillField(this.locators.zip, zipcode);
|
||
|
I.fillField(this.locators.phone, phone);
|
||
|
I.click(this.locators.saveBtn);
|
||
|
},
|
||
|
clickAddAddress() {
|
||
|
let locator = locate(this.locators.addNew)
|
||
|
.withAttr({ 'aria-label': 'Add New Address' });
|
||
|
I.click(locator);
|
||
|
},
|
||
|
clickAddPayment() {
|
||
|
let locator = locate(this.locators.addNew)
|
||
|
.withAttr({ 'aria-label': 'Add New Payment' });
|
||
|
I.click(locator);
|
||
|
},
|
||
|
clickEditProfile() {
|
||
|
let locator = locate(this.locators.viewAll)
|
||
|
.withAttr({ 'aria-label': 'Edit Profile' });
|
||
|
I.click(locator);
|
||
|
},
|
||
|
clickEditPassword() {
|
||
|
let locator = locate(this.locators.viewAll)
|
||
|
.withAttr({ 'aria-label': 'Change Password' });
|
||
|
I.click(locator);
|
||
|
},
|
||
|
clickAddressBook() {
|
||
|
let locator = locate(this.locators.viewAll)
|
||
|
.withAttr({ 'aria-label': 'View Address Book' });
|
||
|
I.click(locator);
|
||
|
},
|
||
|
clickEditAddress(addName) {
|
||
|
let locator = locate(this.locators.viewAll)
|
||
|
.withAttr({ 'aria-label': `Edit Address : ${addName} (Default Address)` });
|
||
|
I.click(locator);
|
||
|
},
|
||
|
editAddress(addName) {
|
||
|
let locator = locate('#addressId.form-control');
|
||
|
I.wait(1);
|
||
|
I.fillField(locator, addName);
|
||
|
I.wait(1);
|
||
|
I.click(this.locators.saveBtn);
|
||
|
},
|
||
|
addPayment(nameOnCard, ccNum, expMonth, expYear) {
|
||
|
I.fillField(this.locators.nameOnCard, nameOnCard);
|
||
|
I.fillField(this.locators.ccNum, ccNum);
|
||
|
I.scrollTo(this.locators.expMonth);
|
||
|
I.selectOption(this.locators.expMonth, expMonth);
|
||
|
I.selectOption(this.locators.expYear, expYear);
|
||
|
I.click(this.locators.defaultPayment);
|
||
|
I.click(this.locators.saveBtn);
|
||
|
I.click(this.locators.backToAccount);
|
||
|
},
|
||
|
viewAllPayments() {
|
||
|
let locator = locate(this.locators.viewAll)
|
||
|
.withAttr({ 'aria-label': 'View saved payment methods' });
|
||
|
I.click(locator);
|
||
|
},
|
||
|
removePayment(deletePaymentModalText) {
|
||
|
let locator = locate(this.locators.removeProductBtn).last();
|
||
|
I.click(locator);
|
||
|
I.waitForText(deletePaymentModalText);
|
||
|
within(this.locators.removeProductModal, () => {
|
||
|
I.click(this.locators.removeProductConfirm);
|
||
|
});
|
||
|
},
|
||
|
changePassword(currentPassword, newPassword) {
|
||
|
I.fillField(this.locators.currentPassword, currentPassword);
|
||
|
I.fillField(this.locators.newPassword, newPassword);
|
||
|
I.fillField(this.locators.newPasswordConfirm, newPassword);
|
||
|
I.click(this.locators.saveBtn);
|
||
|
},
|
||
|
editProfile(phone, email, password) {
|
||
|
I.fillField(this.locators.phone, phone);
|
||
|
I.fillField(this.locators.confirmEmail, email);
|
||
|
I.fillField(this.locators.confirmPassword, password);
|
||
|
I.click(this.locators.saveBtn);
|
||
|
},
|
||
|
logOut() {
|
||
|
I.click(this.locators.loggedInAccountNav);
|
||
|
let locator = locate(this.locators.accountLogOut).last();
|
||
|
I.click(locator);
|
||
|
}
|
||
|
};
|