Commit eb90fdad authored by YuShijiaCode's avatar YuShijiaCode

add cases

parent 141e4d9e
...@@ -14,6 +14,8 @@ class Login_Page { ...@@ -14,6 +14,8 @@ class Login_Page {
user_password_empty_error = '//*[@id="login-with-password_password_help"]/div[1]' user_password_empty_error = '//*[@id="login-with-password_password_help"]/div[1]'
error_message = '//input[@id="login-password_password"]/../../../../../../following-sibling::div[2]' error_message = '//input[@id="login-password_password"]/../../../../../../following-sibling::div[2]'
user_error_message = '//input[@id="login-with-password_password"]/../../../../../../following-sibling::div[2]' user_error_message = '//input[@id="login-with-password_password"]/../../../../../../following-sibling::div[2]'
logout_btn = '//*[@aria-label="logout"]'
// http://unibee:[email protected]/ // http://unibee:[email protected]/
openMerchantUrl = async function (driver, url = 'http://unibee:[email protected]/'){ openMerchantUrl = async function (driver, url = 'http://unibee:[email protected]/'){
console.log("Open URL: " + url); console.log("Open URL: " + url);
......
const baseStep = require("../../CommonStep/Web/Web_Common_Step");
class MerchantSearchBarPage {
logout_btn = '//*[@aria-label="logout"]'
search_bar = '//*[@placeholder="Search invoice Id, customer email"]'
search_btn = '//*[@aria-label="search"]'
first_record_under_invoice = '//*[text()="End"]/../following-sibling::div[1]'
first_record_under_customer = '//*[text()="Name"]/../following-sibling::div[1]'
}
module.exports = new MerchantSearchBarPage();
...@@ -15,8 +15,16 @@ class MerchantSubscriptionPage { ...@@ -15,8 +15,16 @@ class MerchantSubscriptionPage {
payment_method = '//span[text()="Payment Method"]/..//following-sibling::div[1]' payment_method = '//span[text()="Payment Method"]/..//following-sibling::div[1]'
Vat_number = '//span[text()="VAT Number"]/..//following-sibling::div[1]' Vat_number = '//span[text()="VAT Number"]/..//following-sibling::div[1]'
subscription_tab = '//*[@data-node-key="Subscription"]' subscription_tab = '//*[@data-node-key="Subscription"]'
account_tab = '//*[@data-node-key="Account"]' account_tab = '//*[@data-node-key="account"]'
Invoices_tab = '//*[@data-node-key="Invoices"]' Invoices_tab = '//*[@data-node-key="invoices"]'
create_invoice_btn = '//*[@aria-label="plus"]'
tax_rate = '(//*[@type="number"])[1]'
amount = '(//*[@type="number"])[2]'
Quantity = '(//*[@type="number"])[3]'
invoice_title = '(//*[@type="text"])[2]'
item_description = '(//*[@type="text"])[3]'
create_invoice_create_btn = '//*[text()="Create"]'
Payment_tab = '//*[@data-node-key="Payment"]' Payment_tab = '//*[@data-node-key="Payment"]'
sub_plan = '//*[text()="Plan"]/following-sibling::div[1]' sub_plan = '//*[text()="Plan"]/following-sibling::div[1]'
sub_plan_description = '//*[text()="Plan Description"]/following-sibling::div[1]' sub_plan_description = '//*[text()="Plan Description"]/following-sibling::div[1]'
...@@ -40,6 +48,10 @@ class MerchantSubscriptionPage { ...@@ -40,6 +48,10 @@ class MerchantSubscriptionPage {
due_date = '(//*[@placeholder="Select date"])[2]' due_date = '(//*[@placeholder="Select date"])[2]'
due_date_OK_btn = '//*[@type = "button"]/span[text()="OK"]' due_date_OK_btn = '//*[@type = "button"]/span[text()="OK"]'
change_due_date_info = '//*[@class="ant-picker-input"]/../following-sibling::span' change_due_date_info = '//*[@class="ant-picker-input"]/../following-sibling::span'
mark_as_incomplete = '//*[text()="Mark as Incomplete"]'
mark_as_incomplete_date = '(//*[@placeholder="Select date"])[3]'
yes_btn = '//*[text()="Yes"]'
...@@ -95,6 +107,15 @@ class MerchantSubscriptionPage { ...@@ -95,6 +107,15 @@ class MerchantSubscriptionPage {
await driver.findElement(By.xpath(this.due_date)).sendKeys(Key.ENTER); await driver.findElement(By.xpath(this.due_date)).sendKeys(Key.ENTER);
} }
selectDate = async function (driver, days){
console.log("set " + days + " days later");
let current = new Date(new Date().setMonth(new Date().getMonth()));
let expect = baseStep.getDateFormat(new Date(new Date(current).setDate(new Date(current).getDate()+days)), "YYYY-MMM-DD");
await baseStep.inputWithClear(driver, this.mark_as_incomplete_date, expect);
await driver.findElement(By.xpath(this.mark_as_incomplete_date)).sendKeys(Key.ENTER);
}
} }
module.exports = new MerchantSubscriptionPage(); module.exports = new MerchantSubscriptionPage();
\ No newline at end of file
...@@ -34,6 +34,9 @@ class MerchantUserListPage { ...@@ -34,6 +34,9 @@ class MerchantUserListPage {
suspend_btn = '//*[text()="Suspend"]' suspend_btn = '//*[text()="Suspend"]'
suspend_confirm_btn = '(//*[text()=\'Suspend\'])[2]' suspend_confirm_btn = '(//*[text()=\'Suspend\'])[2]'
assign_sub_btn = '//*[text()="Assign Subscription"]' assign_sub_btn = '//*[text()="Assign Subscription"]'
require_payment = '//*[text()="Require payment"]/following-sibling::div/button'
include_unpublished_plan = '//*[text()="Include unpublished plans"]/following-sibling::div/button'
assign_wire_transfer = '(//*[@id="payment-wire_transfer"])[2]'
plan_selector = '(//input[@type="search"]/../..)' plan_selector = '(//input[@type="search"]/../..)'
assign_OK_btn = '//*[text()="OK"]' assign_OK_btn = '//*[text()="OK"]'
current_text = '(//*[@class="ant-divider-inner-text"])[6]' current_text = '(//*[@class="ant-divider-inner-text"])[6]'
......
...@@ -16,8 +16,43 @@ class UserMyAccountPage { ...@@ -16,8 +16,43 @@ class UserMyAccountPage {
billing_address = '//*[@id="address"]' billing_address = '//*[@id="address"]'
company_name = '//*[@id="companyName"]' company_name = '//*[@id="companyName"]'
VATNumber = '//*[@id="vATNumber"]' VATNumber = '//*[@id="vATNumber"]'
account_country = '//*[@id="countryCode"]'
phone_number = '//*[@id="phone"]' phone_number = '//*[@id="phone"]'
Save_btn = '//*[text()="Save"]' Save_btn = '//*[text()="Save"]'
change_wire_error_message ='//*[contains(text(), "Can\'t change gateway to wire transfer, Please contact billing admin")]'
change_password_btn = '//*[text()="Change Password"]'
old_password = '//*[@id="oldPassword"]'
new_password = '//*[@id="newPassword"]'
new_password_confirm = '//*[@id="newPassword2"]'
OK_btn = '//*[text()="OK"]'
payment_stripe = '//*[@for="payment-stripe"]'
payment_wire_transfer = '//*[@for="payment-wire_transfer"]'
payment_crypto = '//*[@for="payment-changelly"]'
auto_pay_radio_2 = '(//*[@name="payment-methods"])[2]'
set_as_auto_payment = '//*[text()="Set as auto payment card"]'
add_new_card = '//*[@aria-label="plus"]'
auto_pay_delete_2 = '(//*[@aria-label="minus"])[2]'
delete_yes_btn = '//*[text()="Yes"]'
vat_error_message = '//*[contains(text(), "AT number validation failed. ")]'
country_error_message = '//*[contains(text(), "Your country from vat number is")]'
setCountry= async function (driver, countryName){
console.log("set country: " , countryName);
// await driver.executeScript(`document.getElementsByClassName("ant-select-selection-item").title = '${countryName}';`)
// await driver.executeScript(`document.getElementsByClassName("ant-select-selection-item").textContent = '${countryName}';`)
// let element = driver.findElement(By.className('ant-select-selection-item'));
//
// let js = `arguments[0].setAttribute("title", "${countryName}");`;
// await driver.executeScript(js, element);
// await driver.executeScript(`arguments[0].innerText = "${countryName}";`, element);
let xpath = '//div[3]/div/div/div[2]/div/div/div/div/div';
await baseStep.input(driver, this.account_country, countryName);
await baseStep.input(driver, this.account_country,'\uE007');
await baseStep.wait(driver, 1000);
}
} }
module.exports = new UserMyAccountPage(); module.exports = new UserMyAccountPage();
...@@ -10,6 +10,10 @@ class UserMySubPage { ...@@ -10,6 +10,10 @@ class UserMySubPage {
cancel_sub_button = '//span[text()="CANCEL"]' cancel_sub_button = '//span[text()="CANCEL"]'
cancel_confirm_button = '//span[text()="Yes, Cancel it"]' cancel_confirm_button = '//span[text()="Yes, Cancel it"]'
go_to_choose_one = '//*[text()="Go to choose one"]' go_to_choose_one = '//*[text()="Go to choose one"]'
change_plan_btn = '//*[text()="Change Plan"]'
resume_btn = '//*[text()="Un-cancel"]'
End_Subscription_btn = '//*[text()= "End Subscription"]'
OK_btn = '//*[text()="OK"]'
selectProduct = async function (driver, name){ selectProduct = async function (driver, name){
console.log("select product: " + name); console.log("select product: " + name);
......
...@@ -24,6 +24,11 @@ class UserPlanPage { ...@@ -24,6 +24,11 @@ class UserPlanPage {
payment_success_sign = '//*[text()="Payment succeeded!"]' payment_success_sign = '//*[text()="Payment succeeded!"]'
wire_transfer_no_finish = '//button[contains(@class, "cancel")]' wire_transfer_no_finish = '//button[contains(@class, "cancel")]'
wire_transfer_Yes_finish = '//button[contains(@class, "confirm")]' wire_transfer_Yes_finish = '//button[contains(@class, "confirm")]'
checkBox_addon = '//*[@class="ant-checkbox-input"]'
addon_count = '//*[@placeholder="count"]'
buy_onetime_btn = '//*[text()="one time payment"]/button'
OK_confirm = '//*[text()="OK"]'
add_card_success_sign = '//*[text()="Adding new payment method succeeded"]'
...@@ -33,6 +38,27 @@ class UserPlanPage { ...@@ -33,6 +38,27 @@ class UserPlanPage {
await baseStep.scrollIntoView(driver, "//*[text()='"+planName+"']"); await baseStep.scrollIntoView(driver, "//*[text()='"+planName+"']");
await baseStep.click(driver, "//*[text()='"+planName+"']"); await baseStep.click(driver, "//*[text()='"+planName+"']");
await baseStep.wait(driver,1000); await baseStep.wait(driver,1000);
for (let i = 0; i < 10; i++){
try{
await baseStep.click(driver, '(//*[text()="Buy"])['+i+']');
}
catch (e){
console.log("no buy button");
}
}
await baseStep.wait(driver,1000);
}
selectPlanWithAddon= async function (driver, planName, addonCount){
console.log("selectPlan: " , planName);
await baseStep.wait(driver,3000)
await baseStep.scrollIntoView(driver, "//*[text()='"+planName+"']");
await baseStep.click(driver, "//*[text()='"+planName+"']");
await baseStep.click(driver, this.checkBox_addon);
await baseStep.wait(driver,1000);
await baseStep.inputWithClear(driver, this.addon_count, addonCount);
await baseStep.wait(driver,1000);
try{ try{
await baseStep.click(driver, this.confirm_btn); await baseStep.click(driver, this.confirm_btn);
} }
......
...@@ -19,6 +19,7 @@ const {expect} = require("chai"); ...@@ -19,6 +19,7 @@ const {expect} = require("chai");
const {wait} = require("../../../CommonStep/Web/Web_Common_Step"); const {wait} = require("../../../CommonStep/Web/Web_Common_Step");
const merchantInvoicePage = require("../../PageObject/MerchantInvoicePage"); const merchantInvoicePage = require("../../PageObject/MerchantInvoicePage");
const discountCodePage = require("../../PageObject/MerchantDiscountCodePage"); const discountCodePage = require("../../PageObject/MerchantDiscountCodePage");
const userListPage = require("../../PageObject/MerchantUserListPage");
let request; let request;
let response; let response;
let timeStamp = new Date(); let timeStamp = new Date();
...@@ -27,6 +28,9 @@ let Driver; ...@@ -27,6 +28,9 @@ let Driver;
let savaPath = __dirname + "/../../Report/Web/ScreenShot/08_Subscription/" + baseStep.getDateFormat(new Date(), "YYYY-MM-DD_HH:mm:ss"); let savaPath = __dirname + "/../../Report/Web/ScreenShot/08_Subscription/" + baseStep.getDateFormat(new Date(), "YYYY-MM-DD_HH:mm:ss");
let testData = []; let testData = [];
let testUser = "[email protected]"; let testUser = "[email protected]";
describe('case01: cancel subscription in merchant=> Success', function () { describe('case01: cancel subscription in merchant=> Success', function () {
this.timeout(9000000); this.timeout(9000000);
...@@ -205,10 +209,10 @@ describe('case01: cancel subscription in merchant=> Success', function () { ...@@ -205,10 +209,10 @@ describe('case01: cancel subscription in merchant=> Success', function () {
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, MerchantSubscriptionPage.end_subscription); await baseStep.click(Driver, MerchantSubscriptionPage.end_subscription);
await baseStep.click(Driver, MerchantSubscriptionPage.end_immediately); await baseStep.click(Driver, MerchantSubscriptionPage.end_immediately);
await baseStep.screenShot(Driver, savaPath + '/01_cancel_sub'); await baseStep.screenShot(Driver, savaPath + '/01_cancel_sub.png');
await baseStep.click(Driver, MerchantSubscriptionPage.end_OK_btn); await baseStep.click(Driver, MerchantSubscriptionPage.end_OK_btn);
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
await baseStep.screenShot(Driver, savaPath + '/02_cancel_result'); await baseStep.screenShot(Driver, savaPath + '/02_cancel_result.png');
await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.sub_status)).to.equal("Cancelled"); await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.sub_status)).to.equal("Cancelled");
done(); done();
} catch (e) { } catch (e) {
...@@ -403,16 +407,18 @@ describe('case02: change subscription in merchant=> Success', function () { ...@@ -403,16 +407,18 @@ describe('case02: change subscription in merchant=> Success', function () {
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
await MerchantSubscriptionPage.selectSubByPlanName(Driver, "Month Plan"); await MerchantSubscriptionPage.selectSubByPlanName(Driver, "Month Plan");
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.sub_status)).to.equal("Active");
await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, MerchantSubscriptionPage.change_sub_btn); await baseStep.click(Driver, MerchantSubscriptionPage.change_sub_btn);
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
await MerchantSubscriptionPage.selectTargetPlan(Driver, "Update Plan"); await MerchantSubscriptionPage.selectTargetPlan(Driver, "Update Plan");
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, MerchantSubscriptionPage.change_OK_btn); await baseStep.click(Driver, MerchantSubscriptionPage.change_OK_btn);
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + '/03_change_sub'); await baseStep.screenShot(Driver, savaPath + '/03_change_sub.png');
await baseStep.click(Driver, MerchantSubscriptionPage.change_confirm); await baseStep.click(Driver, MerchantSubscriptionPage.change_confirm);
await baseStep.wait(Driver, 10000); await baseStep.wait(Driver, 10000);
await baseStep.screenShot(Driver, savaPath + '/04_change_result'); await baseStep.screenShot(Driver, savaPath + '/04_change_result.png');
await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.sub_plan)).to.equal("Update Plan"); await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.sub_plan)).to.equal("Update Plan");
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
done(); done();
...@@ -609,12 +615,12 @@ describe('case03: change Due date=> Success', function () { ...@@ -609,12 +615,12 @@ describe('case03: change Due date=> Success', function () {
await MerchantSubscriptionPage.selectSubByPlanName(Driver, "Month Plan"); await MerchantSubscriptionPage.selectSubByPlanName(Driver, "Month Plan");
await MerchantSubscriptionPage.setDueDate(Driver, 3); await MerchantSubscriptionPage.setDueDate(Driver, 3);
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + '/05_change_due_date'); await baseStep.screenShot(Driver, savaPath + '/05_change_due_date.png');
await baseStep.click(Driver, MerchantSubscriptionPage.due_date_OK_btn); await baseStep.click(Driver, MerchantSubscriptionPage.due_date_OK_btn);
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
let current = new Date(new Date().setMonth(new Date().getMonth() + 1)); let current = new Date(new Date().setMonth(new Date().getMonth() + 1));
let expectDate = baseStep.getDateFormat(new Date(new Date(current).setDate(new Date(current).getDate() + 3)), "YYYY-MMM-DD"); let expectDate = baseStep.getDateFormat(new Date(new Date(current).setDate(new Date(current).getDate() + 3)), "YYYY-MMM-DD");
await baseStep.screenShot(Driver, savaPath + '/06_change_due_date_result'); await baseStep.screenShot(Driver, savaPath + '/06_change_due_date_result.png');
await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.change_due_date_info)).to.equal("+3 days → " + expectDate); await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.change_due_date_info)).to.equal("+3 days → " + expectDate);
await baseStep.wait(Driver, 5000); await baseStep.wait(Driver, 5000);
done(); done();
...@@ -634,6 +640,595 @@ describe('case03: change Due date=> Success', function () { ...@@ -634,6 +640,595 @@ describe('case03: change Due date=> Success', function () {
}); });
describe('case04: Pending to incomplete=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].subscription.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 05 - purchase a plan with wire transfer => Success ', (done) => {
(async () => {
try {
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Month Plan');
await baseStep.click(Driver, userPlanPage.wire_transfer);
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.wire_transfer_no_finish);
await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, userMySubPage.menu_my_subscription);
let actucl_status = await baseStep.getText(Driver, userMySubPage.sub_status);
expect("Pending").to.equal(actucl_status);
await baseStep.wait(Driver, 2000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('case 06 - check sub in merchant portal => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openMerchantUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.email, 20000);
await loginPage.loginMerchant(Driver)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, MerchantSubscriptionPage.menu_subscription);
await baseStep.wait(Driver, 2000);
await MerchantSubscriptionPage.selectSubByPlanName(Driver, "Month Plan");
await baseStep.wait(Driver, 2000);
await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.sub_status)).to.equal("Pending");
await baseStep.screenShot(Driver, savaPath + '/07_pending.png');
await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, MerchantSubscriptionPage.mark_as_incomplete);
await baseStep.wait(Driver, 2000);
await MerchantSubscriptionPage.selectDate(Driver, 1);
await baseStep.click(Driver, MerchantSubscriptionPage.yes_btn);
await baseStep.wait(Driver, 2000);
await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.sub_status)).to.equal("Incomplete");
await baseStep.screenShot(Driver, savaPath + '/08_incomplete.png');
await baseStep.wait(Driver, 2000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case05: change account info in subscription=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].subscription.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 05 - select a plan with Succeeded => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Month Plan');
await baseStep.waitUntilElement(Driver, userPlanPage.bank_card, 20000);
await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 5000);
await baseStep.switchWindow(Driver);
await baseStep.waitUntilElement(Driver, userPlanPage.change_card_btn, 200000);
await baseStep.click(Driver, userPlanPage.change_card_btn);
await baseStep.input(Driver, userPlanPage.card_number, '4242424242424242');
await baseStep.input(Driver, userPlanPage.card_expiry, '1234');
await baseStep.wait(Driver, 1000);
await baseStep.input(Driver, userPlanPage.card_cvc, '567');
await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userPlanPage.pay_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 50000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign);
await expect("Payment succeeded!").to.equal(actual_success_text);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('case 06 - change account info in merchant portal => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openMerchantUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.email, 20000);
await loginPage.loginMerchant(Driver)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, MerchantSubscriptionPage.menu_subscription);
await baseStep.wait(Driver, 2000);
await MerchantSubscriptionPage.selectSubByPlanName(Driver, "Month Plan");
await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, MerchantSubscriptionPage.account_tab);
await baseStep.wait(Driver, 2000);
await baseStep.inputWithClear(Driver, userListPage.account_billing_address, "update address" + new Date().getTime());
await baseStep.screenShot(Driver, savaPath + "/09_Edit_result.png");
await baseStep.scrollIntoView(Driver, userListPage.save_btn);
await baseStep.click(Driver, userListPage.save_btn);
await baseStep.wait(Driver, 1000);
await baseStep.wait(Driver, 2000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case06: create an invoice in subscription=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].subscription.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 04 - change account info in merchant portal => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openMerchantUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.email, 20000);
await loginPage.loginMerchant(Driver)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, MerchantSubscriptionPage.menu_subscription);
await baseStep.wait(Driver, 2000);
await MerchantSubscriptionPage.selectSubByPlanName(Driver, "Month Plan");
await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, MerchantSubscriptionPage.Invoices_tab);
await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, MerchantSubscriptionPage.create_invoice_btn);
await baseStep.wait(Driver, 1000);
await baseStep.input(Driver, MerchantSubscriptionPage.tax_rate, "0");
await baseStep.input(Driver, MerchantSubscriptionPage.invoice_title, "auto create");
await baseStep.input(Driver, MerchantSubscriptionPage.item_description, "auto create description");
await baseStep.input(Driver, MerchantSubscriptionPage.amount, "20");
await baseStep.screenShot(Driver, savaPath + "/10_create_invoice.png");
await baseStep.click(Driver, MerchantSubscriptionPage.create_invoice_create_btn);
await baseStep.wait(Driver, 2000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('case 05 - check invoice in merchant portal => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openMerchantUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.email, 20000);
await loginPage.loginMerchant(Driver)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, merchantInvoicePage.menu_Invoice);
await baseStep.screenShot(Driver, savaPath + '/11_InvoiceDetail.jpeg');
await merchantInvoicePage.checkRecordInvoiceList(Driver, "€20\n(tax: €0)", "Invoice", "Processing", "Stripe", testUser);
await baseStep.wait(Driver, 1000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
......
...@@ -26,7 +26,7 @@ let Driver; ...@@ -26,7 +26,7 @@ let Driver;
let savaPath = __dirname + "/../../Report/Web/ScreenShot/09_user_list/" + baseStep.getDateFormat(new Date(), "YYYY-MM-DD_HH:mm:ss"); let savaPath = __dirname + "/../../Report/Web/ScreenShot/09_user_list/" + baseStep.getDateFormat(new Date(), "YYYY-MM-DD_HH:mm:ss");
let testData = []; let testData = [];
let testUser = "[email protected]"; let testUser = "[email protected]";
describe('case01: add user in user list=> Success', function () { describe('case01: add user in user list and suspend=> Success', function () {
this.timeout(9000000); this.timeout(9000000);
beforeEach(function () { beforeEach(function () {
...@@ -667,7 +667,7 @@ describe('case08:Set country and vat number in user list=> Success', function () ...@@ -667,7 +667,7 @@ describe('case08:Set country and vat number in user list=> Success', function ()
}); });
it('case 01 - wrong vat number => Success ', (done) => { it('case 01 - vat number and country=> Success ', (done) => {
(async () => { (async () => {
try { try {
// login // login
...@@ -698,8 +698,6 @@ describe('case08:Set country and vat number in user list=> Success', function () ...@@ -698,8 +698,6 @@ describe('case08:Set country and vat number in user list=> Success', function ()
await baseStep.scrollIntoView(Driver, userListPage.save_btn); await baseStep.scrollIntoView(Driver, userListPage.save_btn);
await baseStep.click(Driver, userListPage.save_btn); await baseStep.click(Driver, userListPage.save_btn);
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
expect(await baseStep.getText(Driver, userListPage.vat_error_message)).not.null
await baseStep.wait(Driver, 3000);
done(); done();
} catch (e) { } catch (e) {
done(e); done(e);
...@@ -809,6 +807,197 @@ describe('case09: set wrong country in user list=> Success', function () { ...@@ -809,6 +807,197 @@ describe('case09: set wrong country in user list=> Success', function () {
}); });
describe('case10: Assign an unpublished subscription in user list=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - Assign a sub => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openMerchantUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.email, 20000);
await loginPage.loginMerchant(Driver)
await baseStep.wait(Driver, 1000);
await baseStep.waitUntilElement(Driver, userListPage.menu_user_list);
await baseStep.click(Driver, userListPage.menu_user_list);
await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, userListPage.add_new_btn);
await baseStep.wait(Driver, 2000);
let time = new Date().getTime();
await baseStep.input(Driver, userListPage.new_email, "Auto" + time + "@test.com");
await baseStep.input(Driver, userListPage.new_ex_user_id, time);
await baseStep.input(Driver, userListPage.new_first_name, "Testing");
await baseStep.input(Driver, userListPage.new_last_name, "QA" + time);
await baseStep.input(Driver, userListPage.new_phone, "15642543250");
await baseStep.input(Driver, userListPage.new_address, "Test Address");
await baseStep.click(Driver, userListPage.new_OK_btn);
await baseStep.wait(Driver, 1000);
await userListPage.checkRecordUserList(Driver, "Testing QA" + time, "Auto" + time + "@test.com", "Active");
await baseStep.click(Driver, userListPage.subscription_tab);
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userListPage.assign_sub_btn);
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userListPage.include_unpublished_plan);
await baseStep.wait(Driver, 1000);
await userListPage.selectTargetPlan(Driver, "UnPublish Plan");
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userListPage.assign_wire_transfer);
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + "/15_assign_sub.png");
await baseStep.click(Driver, userListPage.assign_OK_btn);
await baseStep.wait(Driver, 3000);
await baseStep.screenShot(Driver, savaPath + "/16_assign_result.png");
await baseStep.compareText(Driver, userListPage.current_plan, "UnPublish Plan");
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case11: Assign subscription with require payment is false=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - Assign a sub => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openMerchantUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.email, 20000);
await loginPage.loginMerchant(Driver)
await baseStep.wait(Driver, 1000);
await baseStep.waitUntilElement(Driver, userListPage.menu_user_list);
await baseStep.click(Driver, userListPage.menu_user_list);
await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, userListPage.add_new_btn);
await baseStep.wait(Driver, 2000);
let time = new Date().getTime();
await baseStep.input(Driver, userListPage.new_email, "Auto" + time + "@test.com");
await baseStep.input(Driver, userListPage.new_ex_user_id, time);
await baseStep.input(Driver, userListPage.new_first_name, "Testing");
await baseStep.input(Driver, userListPage.new_last_name, "QA" + time);
await baseStep.input(Driver, userListPage.new_phone, "15642543250");
await baseStep.input(Driver, userListPage.new_address, "Test Address");
await baseStep.click(Driver, userListPage.new_OK_btn);
await baseStep.wait(Driver, 1000);
await userListPage.checkRecordUserList(Driver, "Testing QA" + time, "Auto" + time + "@test.com", "Active");
await baseStep.click(Driver, userListPage.subscription_tab);
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userListPage.assign_sub_btn);
await baseStep.wait(Driver, 1000);
await userListPage.selectTargetPlan(Driver, "Month Plan");
await baseStep.click(Driver, userListPage.require_payment);
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + "/18_assign_sub.png");
await baseStep.click(Driver, userListPage.assign_OK_btn);
await baseStep.wait(Driver, 3000);
await baseStep.screenShot(Driver, savaPath + "/19_assign_result.png");
await baseStep.compareText(Driver, userListPage.current_plan, "Month Plan");
await baseStep.compareText(Driver, userListPage.current_plan_des, "Month Plan");
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
......
let loginPage = require("../../PageObject/LoginPage");
let userPlanPage = require("../../PageObject/UserPlanPage");
let userMySubPage = require("../../PageObject/UserMySubPage");
let userInvoicePage = require("../../PageObject/UserInvoicePage")
let merchantTransactionPage = require("../../PageObject/MerchantTransactionPage")
let merchantMyAccount = require("../../PageObject/MerchantMyAccountPage")
let searchBarPage = require("../../PageObject/MerchantSearchBarPage")
let userListPage = require("../../PageObject/MerchantUserListPage")
const urlencoded = require('urlencode');
const webdriver = require('selenium-webdriver');
const By = webdriver.By;
const driver = require('../../../CommonStep/Web/seleniumWebDriver');
const baseStep = require('../../../CommonStep/Web/Web_Common_Step');
const API_Object = require("../../../CommonStep/API/API_Object");
const API_Env = require("../../../CommonStep/API/API_Env");
const ApiReq = new API_Object("https://api.unibee.top");
const addContext = require('mochawesome/addContext');
const {expect} = require("chai");
const {wait} = require("../../../CommonStep/Web/Web_Common_Step");
const merchantInvoicePage = require("../../PageObject/MerchantInvoicePage");
let request;
let response;
let timeStamp = new Date();
let Driver;
let savaPath = __dirname + "/../../Report/Web/ScreenShot/11_search_bar/" + baseStep.getDateFormat(new Date(), "YYYY-MM-DD_HH:mm:ss");
let testData = [];
let testUser = "[email protected]";
describe('case01: logout=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - logout => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openMerchantUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
await loginPage.loginMerchant(Driver);
await baseStep.wait(Driver, 3000);
await baseStep.screenShot(Driver, savaPath + '/01_Login.jpeg');
await baseStep.click(Driver, searchBarPage.logout_btn);
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + '/02_Logout.jpeg');
expect(await loginPage.email).to.be.exist
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case02: search bar => Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 02 - search invoice => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openMerchantUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
await loginPage.loginMerchant(Driver);
await baseStep.wait(Driver, 3000);
await baseStep.input(Driver, searchBarPage.search_bar, "81728528183713");
await baseStep.click(Driver, searchBarPage.search_btn);
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + '/03_Search.jpeg');
await baseStep.click(Driver, searchBarPage.first_record_under_invoice);
await baseStep.wait(Driver, 3000);
await baseStep.screenShot(Driver, savaPath + '/04_invoice_opened.jpeg');
expect(await baseStep.getText(Driver, merchantInvoicePage.invoice_name)).to.equal("SubscriptionCreate");
expect(await baseStep.getText(Driver, merchantInvoicePage.invoice_amount)).to.equal("€24 (20% tax incl)");
expect(await baseStep.getText(Driver, merchantInvoicePage.status)).to.equal("Paid");
expect(await baseStep.getText(Driver, merchantInvoicePage.subscription_id)).not.null;
expect(await baseStep.getText(Driver, merchantInvoicePage.payment_gateway)).to.equal("Stripe");
await baseStep.click(Driver, searchBarPage.search_btn);
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, searchBarPage.first_record_under_customer);
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + '/05_userInfo_opened.jpeg');
expect(await baseStep.getText(Driver, userListPage.info_email)).to.equal(testUser);
await baseStep.wait(Driver, 1000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case03: search bar => Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - search user email => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openMerchantUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
await loginPage.loginMerchant(Driver);
await baseStep.wait(Driver, 3000);
await baseStep.input(Driver, searchBarPage.search_bar, testUser);
await baseStep.click(Driver, searchBarPage.search_btn);
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + '/03_Search.jpeg');
await baseStep.click(Driver, searchBarPage.first_record_under_invoice);
await baseStep.wait(Driver, 3000);
await baseStep.screenShot(Driver, savaPath + '/04_invoice_opened.jpeg');
expect(await baseStep.getText(Driver, merchantInvoicePage.subscription_id)).not.null;
await baseStep.click(Driver, searchBarPage.search_btn);
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, searchBarPage.first_record_under_customer);
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + '/05_userInfo_opened.jpeg');
expect(await baseStep.getText(Driver, userListPage.info_email)).to.equal(testUser);
await baseStep.wait(Driver, 1000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
...@@ -268,10 +268,11 @@ describe('case01: Purchase plan with credit card=> Success', function () { ...@@ -268,10 +268,11 @@ describe('case01: Purchase plan with credit card=> Success', function () {
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000); await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser) await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000); await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Month Plan'); await userPlanPage.selectPlan(Driver, 'Month Plan');
await baseStep.click(Driver, userPlanPage.bank_card); await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.screenShot(Driver, savaPath + "/01_PlanWithCreditCard"); await baseStep.screenShot(Driver, savaPath + "/01_PlanWithCreditCard.png");
await baseStep.click(Driver, userPlanPage.OK_btn); await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.switchWindow(Driver); await baseStep.switchWindow(Driver);
...@@ -281,12 +282,12 @@ describe('case01: Purchase plan with credit card=> Success', function () { ...@@ -281,12 +282,12 @@ describe('case01: Purchase plan with credit card=> Success', function () {
await baseStep.input(Driver, userPlanPage.card_expiry, '1234'); await baseStep.input(Driver, userPlanPage.card_expiry, '1234');
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.input(Driver, userPlanPage.card_cvc, '567'); await baseStep.input(Driver, userPlanPage.card_cvc, '567');
await baseStep.screenShot(Driver, savaPath + "/02_PayWithCreditCard"); await baseStep.screenShot(Driver, savaPath + "/02_PayWithCreditCard.png");
await baseStep.wait(Driver, 3000); await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userPlanPage.pay_btn); await baseStep.click(Driver, userPlanPage.pay_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 20000); await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 20000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign); let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign);
await baseStep.screenShot(Driver, savaPath + "/03_PaySuccess"); await baseStep.screenShot(Driver, savaPath + "/03_PaySuccess.png");
await expect("Payment succeeded!").to.equal(actual_success_text); await expect("Payment succeeded!").to.equal(actual_success_text);
await baseStep.wait(Driver, 3000); await baseStep.wait(Driver, 3000);
done(); done();
...@@ -434,18 +435,19 @@ describe('case02: Purchase plan with wire transfer and not finish=> Success', fu ...@@ -434,18 +435,19 @@ describe('case02: Purchase plan with wire transfer and not finish=> Success', fu
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000); await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser) await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000); await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Month Plan'); await userPlanPage.selectPlan(Driver, 'Month Plan');
await baseStep.click(Driver, userPlanPage.wire_transfer); await baseStep.click(Driver, userPlanPage.wire_transfer);
await baseStep.screenShot(Driver, savaPath + "/04_PlanWithWireTransfer"); await baseStep.screenShot(Driver, savaPath + "/04_PlanWithWireTransfer.png");
await baseStep.click(Driver, userPlanPage.OK_btn); await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.wire_transfer_no_finish); await baseStep.click(Driver, userPlanPage.wire_transfer_no_finish);
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, userMySubPage.menu_my_subscription); await baseStep.click(Driver, userMySubPage.menu_my_subscription);
let actucl_status = await baseStep.getText(Driver, userMySubPage.sub_status); let actucl_status = await baseStep.getText(Driver, userMySubPage.sub_status);
await baseStep.screenShot(Driver, savaPath + "/05_PayResult"); await baseStep.screenShot(Driver, savaPath + "/05_PayResult.png");
expect("Pending").to.equal(actucl_status); expect("Pending").to.equal(actucl_status);
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
done(); done();
...@@ -593,16 +595,17 @@ describe('case03: Purchase plan with wire transfer and finished=> Success', func ...@@ -593,16 +595,17 @@ describe('case03: Purchase plan with wire transfer and finished=> Success', func
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000); await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser) await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000); await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Month Plan'); await userPlanPage.selectPlan(Driver, 'Month Plan');
await baseStep.click(Driver, userPlanPage.wire_transfer); await baseStep.click(Driver, userPlanPage.wire_transfer);
await baseStep.screenShot(Driver, savaPath + "/06_PayWithWireTransfer"); await baseStep.screenShot(Driver, savaPath + "/06_PayWithWireTransfer.png");
await baseStep.click(Driver, userPlanPage.OK_btn); await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000); await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.wire_transfer_Yes_finish); await baseStep.click(Driver, userPlanPage.wire_transfer_Yes_finish);
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, userMySubPage.menu_my_subscription); await baseStep.click(Driver, userMySubPage.menu_my_subscription);
await baseStep.screenShot(Driver, savaPath + "/07_PayResult"); await baseStep.screenShot(Driver, savaPath + "/07_PayResult.png");
let actucl_status = await baseStep.getText(Driver, userMySubPage.sub_status); let actucl_status = await baseStep.getText(Driver, userMySubPage.sub_status);
expect("Processing").to.equal(actucl_status); expect("Processing").to.equal(actucl_status);
await baseStep.wait(Driver, 2000); await baseStep.wait(Driver, 2000);
...@@ -623,6 +626,1198 @@ describe('case03: Purchase plan with wire transfer and finished=> Success', func ...@@ -623,6 +626,1198 @@ describe('case03: Purchase plan with wire transfer and finished=> Success', func
}); });
describe('case04: Purchase trail plan with credit card=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].user.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 05 - user purchase a plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Trail Plan');
await baseStep.screenShot(Driver, savaPath + "/08_select_trail_plan.png");
await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000);
await baseStep.switchWindow(Driver);
await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 20000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign);
await expect("Payment succeeded!").to.equal(actual_success_text);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case05: Purchase plan with addon and one time payment=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].user.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 04 - user purchase a plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlanWithAddon(Driver, 'Addon Plan', "2");
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + "/09_addon_plan.png");
await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000);
await baseStep.switchWindow(Driver);
await baseStep.waitUntilElement(Driver, userPlanPage.change_card_btn, 20000);
await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userPlanPage.pay_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 20000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign);
await expect("Payment succeeded!").to.equal(actual_success_text);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('case 05 - add a one time payment => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await baseStep.click(Driver, userPlanPage.buy_onetime_btn);
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + "/10_one_time_addon.png");
await baseStep.click(Driver, userPlanPage.OK_confirm);
await baseStep.wait(Driver, 1000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case06: Purchase Trail plan with bank card and auto renew=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].subscription.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].user.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 04 - user purchase trail a plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectProduct(Driver, "Trail");
await userPlanPage.selectPlan(Driver, 'Plan1');
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.screenShot(Driver, savaPath + "/11_trail_bank_card_renew.png");
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000);
await baseStep.switchWindow(Driver);
await baseStep.waitUntilElement(Driver, userPlanPage.card_number, 20000);
await baseStep.input(Driver, userPlanPage.card_number, '4242424242424242');
await baseStep.input(Driver, userPlanPage.card_expiry, '1234');
await baseStep.wait(Driver, 1000);
await baseStep.input(Driver, userPlanPage.card_cvc, '567');
await baseStep.input(Driver, userPlanPage.billing_name, "Joshua");
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.pay_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 20000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign);
await expect("Payment succeeded!").to.equal(actual_success_text);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case07: Purchase Trail plan without bank card and auto renew=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].subscription.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].user.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 04 - user purchase trail a plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectProduct(Driver, "Trail");
await userPlanPage.selectPlan(Driver, 'Plan2');
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.screenShot(Driver, savaPath + "/12_trail_no_bank_card_renew.png");
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case08: Purchase Trail plan with bank card and no auto renew=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].subscription.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].user.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 04 - user purchase trail a plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectProduct(Driver, "Trail");
await userPlanPage.selectPlan(Driver, 'Plan3');
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.screenShot(Driver, savaPath + "/13_trail_bank_card_no_renew.png");
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000);
await baseStep.switchWindow(Driver);
await baseStep.waitUntilElement(Driver, userPlanPage.card_number, 20000);
await baseStep.input(Driver, userPlanPage.card_number, '4242424242424242');
await baseStep.input(Driver, userPlanPage.card_expiry, '1234');
await baseStep.wait(Driver, 1000);
await baseStep.input(Driver, userPlanPage.card_cvc, '567');
await baseStep.input(Driver, userPlanPage.billing_name, "Joshua");
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.pay_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 20000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign);
await expect("Payment succeeded!").to.equal(actual_success_text);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case09: update plan=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].user.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 04 - user purchase a plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Month Plan');
await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000);
await baseStep.switchWindow(Driver);
await baseStep.waitUntilElement(Driver, userPlanPage.change_card_btn, 20000);
await baseStep.click(Driver, userPlanPage.change_card_btn);
await baseStep.input(Driver, userPlanPage.card_number, '4242424242424242');
await baseStep.input(Driver, userPlanPage.card_expiry, '1234');
await baseStep.wait(Driver, 1000);
await baseStep.input(Driver, userPlanPage.card_cvc, '567');
await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userPlanPage.pay_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 20000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign);
await expect("Payment succeeded!").to.equal(actual_success_text);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('case 05 - update plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Update Plan');
await baseStep.screenShot(Driver, savaPath + "/14_Update_plan.png");
await baseStep.click(Driver, userPlanPage.OK_confirm);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
......
...@@ -19,6 +19,7 @@ const addContext = require('mochawesome/addContext'); ...@@ -19,6 +19,7 @@ const addContext = require('mochawesome/addContext');
const {expect} = require("chai"); const {expect} = require("chai");
const {wait} = require("../../../CommonStep/Web/Web_Common_Step"); const {wait} = require("../../../CommonStep/Web/Web_Common_Step");
const merchantInvoicePage = require("../../PageObject/MerchantInvoicePage"); const merchantInvoicePage = require("../../PageObject/MerchantInvoicePage");
const userListPage = require("../../PageObject/MerchantUserListPage");
let request; let request;
let response; let response;
let timeStamp = new Date(); let timeStamp = new Date();
...@@ -81,7 +82,7 @@ describe('case01: Update account info=> Success', function () { ...@@ -81,7 +82,7 @@ describe('case01: Update account info=> Success', function () {
await baseStep.inputWithClear(Driver, userMyAccount.billing_address, "billing address" + new Date().getTime()); await baseStep.inputWithClear(Driver, userMyAccount.billing_address, "billing address" + new Date().getTime());
await baseStep.inputWithClear(Driver, userMyAccount.company_name, "test company"); await baseStep.inputWithClear(Driver, userMyAccount.company_name, "test company");
await baseStep.scrollIntoView(Driver, userMyAccount.Save_btn); await baseStep.scrollIntoView(Driver, userMyAccount.Save_btn);
await baseStep.screenShot(Driver, savaPath + "/01_updateAccountInfo"); await baseStep.screenShot(Driver, savaPath + "/01_updateAccountInfo.png");
await baseStep.click(Driver, userMyAccount.Save_btn); await baseStep.click(Driver, userMyAccount.Save_btn);
await baseStep.wait(Driver, 10000); await baseStep.wait(Driver, 10000);
done(); done();
...@@ -102,8 +103,741 @@ describe('case01: Update account info=> Success', function () { ...@@ -102,8 +103,741 @@ describe('case01: Update account info=> Success', function () {
}); });
describe('case02: change password=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - change password => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser, "Aa@666666")
await baseStep.wait(Driver, 1000);
await baseStep.waitUntilElement(Driver, userMyAccount.menu_my_account, 20000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.scrollIntoView(Driver, userMyAccount.change_password_btn);
await baseStep.click(Driver, userMyAccount.change_password_btn);
await baseStep.input(Driver, userMyAccount.old_password, "Aa@666666");
await baseStep.input(Driver, userMyAccount.new_password, "Aa@777777");
await baseStep.input(Driver, userMyAccount.new_password_confirm, "Aa@777777");
await baseStep.screenShot(Driver, savaPath + "/02_change_password_success.png");
await baseStep.click(Driver, userMyAccount.OK_btn);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser, "Aa@777777");
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.scrollIntoView(Driver, userMyAccount.change_password_btn);
await baseStep.click(Driver, userMyAccount.change_password_btn);
await baseStep.input(Driver, userMyAccount.old_password, "Aa@777777");
await baseStep.input(Driver, userMyAccount.new_password, "Aa@666666");
await baseStep.input(Driver, userMyAccount.new_password_confirm, "Aa@666666");
await baseStep.click(Driver, userMyAccount.OK_btn);
await baseStep.wait(Driver, 10000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case03: change stripe to wire_transfer=> Failed', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - change stripe to wire_transfer => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser, "Aa@666666")
await baseStep.wait(Driver, 1000);
await baseStep.waitUntilElement(Driver, userMyAccount.menu_my_account, 20000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.scrollIntoView(Driver, userMyAccount.payment_wire_transfer)
await baseStep.click(Driver, userMyAccount.payment_wire_transfer);
await baseStep.scrollIntoView(Driver, userMyAccount.Save_btn)
await baseStep.click(Driver, userMyAccount.Save_btn);
await baseStep.screenShot(Driver, savaPath + "/03_error_message.png");
await baseStep.wait(Driver, 1000);
expect(userMyAccount.change_wire_error_message).to.be.exist;
await baseStep.wait(Driver, 2000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case04: change stripe to crypto=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - change stripe to crypto => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser, "Aa@666666")
await baseStep.wait(Driver, 1000);
await baseStep.waitUntilElement(Driver, userMyAccount.menu_my_account, 20000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.scrollIntoView(Driver, userMyAccount.payment_crypto)
await baseStep.click(Driver, userMyAccount.payment_crypto);
await baseStep.screenShot(Driver, savaPath + "/04_change_to_crypto.png");
await baseStep.scrollIntoView(Driver, userMyAccount.Save_btn)
await baseStep.click(Driver, userMyAccount.Save_btn);
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userMyAccount.payment_stripe);
await baseStep.click(Driver, userMyAccount.Save_btn);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case05: switch card as auto payment => Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - switch card as auto payment => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser, "Aa@666666")
await baseStep.wait(Driver, 1000);
await baseStep.waitUntilElement(Driver, userMyAccount.menu_my_account, 20000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.scrollIntoView(Driver, userMyAccount.set_as_auto_payment);
await baseStep.refreshPage(Driver);
await baseStep.waitUntilElement(Driver, userMyAccount.auto_pay_radio_2, 20000);
await baseStep.click(Driver, userMyAccount.auto_pay_radio_2);
await baseStep.click(Driver, userMyAccount.set_as_auto_payment);
await baseStep.screenShot(Driver, savaPath + "/05_switch_card.png");
await baseStep.scrollIntoView(Driver, userMyAccount.Save_btn)
await baseStep.click(Driver, userMyAccount.Save_btn);
await baseStep.wait(Driver, 1000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case06: Add card as auto payment => Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - Add card as auto payment ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser );
await baseStep.wait(Driver, 1000);
await baseStep.waitUntilElement(Driver, userMyAccount.menu_my_account, 20000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.refreshPage(Driver);
await baseStep.wait(Driver, 5000);
await baseStep.waitUntilElement(Driver, userMyAccount.add_new_card, 20000);
await baseStep.click(Driver, userMyAccount.add_new_card);
await baseStep.wait(Driver, 1000);
await baseStep.switchWindow(Driver);
await baseStep.waitUntilElement(Driver, userPlanPage.card_number, 20000);
await baseStep.input(Driver, userPlanPage.card_number, '5555555555554444');
await baseStep.input(Driver, userPlanPage.card_expiry, '1234');
await baseStep.wait(Driver, 1000);
await baseStep.input(Driver, userPlanPage.card_cvc, '567');
await baseStep.input(Driver, userPlanPage.billing_name, "Joshua");
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.pay_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.add_card_success_sign, 20000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.add_card_success_sign);
await expect("Adding new payment method succeeded").to.equal(actual_success_text);
await baseStep.screenShot(Driver, savaPath + "/06_add_card.png");
await baseStep.wait(Driver, 1000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case07: Delete card => Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - delete card ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser );
await baseStep.wait(Driver, 1000);
await baseStep.waitUntilElement(Driver, userMyAccount.menu_my_account, 20000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.refreshPage(Driver);
await baseStep.wait(Driver, 5000);
await baseStep.waitUntilElement(Driver, userMyAccount.auto_pay_delete_2, 20000);
await baseStep.click(Driver, userMyAccount.auto_pay_delete_2);
await baseStep.screenShot(Driver, savaPath + "/07_delete_card.png");
await baseStep.click(Driver, userMyAccount.delete_yes_btn);
await baseStep.wait(Driver, 1000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case08: Update account info: wrong vat number=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - add wrong vat number => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.inputWithClear(Driver, userMyAccount.VATNumber, "123456789" );
await baseStep.scrollIntoView(Driver, userMyAccount.Save_btn);
await baseStep.click(Driver, userMyAccount.Save_btn);
await baseStep.screenShot(Driver, savaPath + "/08_vat_error_message.png");
expect(await baseStep.getText(Driver, userMyAccount.vat_error_message)).not.null
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case09: Update account info: vat number and country=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - add vat number and country => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.scrollIntoView(Driver, userMyAccount.VATNumber);
await userMyAccount.setCountry(Driver,"United Kingdom");
await baseStep.inputWithClear(Driver, userMyAccount.VATNumber, "GB288305674");
await baseStep.screenShot(Driver, savaPath + "/09_vat_number_country.png");
await baseStep.scrollIntoView(Driver, userMyAccount.Save_btn);
await baseStep.click(Driver, userMyAccount.Save_btn);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case10: Update account info: wrong country=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - add vat number and country => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userMyAccount.menu_my_account);
await baseStep.scrollIntoView(Driver, userMyAccount.VATNumber);
await userMyAccount.setCountry(Driver,"China");
await baseStep.screenShot(Driver, savaPath + "/10_wrong_country.png");
await baseStep.scrollIntoView(Driver, userMyAccount.Save_btn);
await baseStep.click(Driver, userMyAccount.Save_btn);
expect(await baseStep.getText(Driver, userMyAccount.country_error_message)).not.null;
await baseStep.scrollIntoView(Driver, userMyAccount.VATNumber);
await userMyAccount.setCountry(Driver,"United Kingdom");
await baseStep.inputWithClear(Driver, userListPage.account_vat_number, "");
await baseStep.scrollIntoView(Driver, userMyAccount.Save_btn);
await baseStep.click(Driver, userMyAccount.Save_btn);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
......
let loginPage = require("../../PageObject/LoginPage");
let planPage = require("../../PageObject/MerchantPlanPage");
const webdriver = require('selenium-webdriver');
const By = webdriver.By;
const driver = require('../../../CommonStep/Web/seleniumWebDriver');
const baseStep = require('../../../CommonStep/Web/Web_Common_Step');
const addContext = require('mochawesome/addContext');
const {expect} = require("chai");
const API_Object = require("../../../CommonStep/API/API_Object");
const API_Env = require("../../../CommonStep/API/API_Env");
const ApiReq = new API_Object("https://api.unibee.top");
const urlencoded = require("urlencode");
const userPlanPage = require("../../PageObject/UserPlanPage");
const userSubPage = require("../../PageObject/UserMySubPage");
let request;
let response;
let timeStamp = new Date();
let Driver;
let savaPath = __dirname + "/../../Report/Web/ScreenShot/08_MySubscription" + baseStep.getDateFormat(new Date(), "YYYY-MM-DD_HH:mm:ss");
testData = [];
let testUser = "[email protected]";
describe('case01: Click link to jump to the corresponding product=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('case 01 - check subscription list => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userSubPage.menu_my_subscription);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.click(Driver, userSubPage.menu_my_subscription);
await baseStep.wait(Driver, 3000);
await userSubPage.selectProduct(Driver, "Link Product");
await baseStep.wait(Driver, 2000);
await baseStep.screenShot(Driver, savaPath + "/01_Link.jpeg");
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userSubPage.go_to_choose_one);
await baseStep.wait(Driver, 2000);
await baseStep.screenShot(Driver, savaPath + "/02_Link_product.jpeg");
expect("true").to.equal(await userSubPage.isProductSelected(Driver, "Link Product"));
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case02: change plan=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].user.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 04 - user purchase a plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Month Plan');
await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000);
await baseStep.switchWindow(Driver);
await baseStep.waitUntilElement(Driver, userPlanPage.change_card_btn, 20000);
await baseStep.click(Driver, userPlanPage.change_card_btn);
await baseStep.input(Driver, userPlanPage.card_number, '4242424242424242');
await baseStep.input(Driver, userPlanPage.card_expiry, '1234');
await baseStep.wait(Driver, 1000);
await baseStep.input(Driver, userPlanPage.card_cvc, '567');
await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userPlanPage.pay_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 20000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign);
await expect("Payment succeeded!").to.equal(actual_success_text);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('case 05 - change plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userSubPage.menu_my_subscription);
await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userSubPage.change_plan_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Update Plan');
await baseStep.screenShot(Driver, savaPath + "/03_Update_plan.png");
await baseStep.click(Driver, userPlanPage.OK_confirm);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
describe('case03: cancel plan and resume=> Success', function () {
this.timeout(9000000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
});
}
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('Case 01: Get User List => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getUserList(API_Env.get().headerSet, urlencoded(testUser), (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
testData["id"] = resBody.data.userAccounts[0].id;
console.log("testData[\"id\"]", testData["id"])
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 02: Get subscription => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
// API_Env.get().headerSet.Authorization = "Bearer " + testData["token"];
ApiReq.getSubscription(API_Env.get().headerSet, testData['id'], (res, url, header) => {
request = {
URL: url,
Headers: header
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody);
testData['subId'] = resBody.data.subscriptions[0].user.subscriptionId;
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('Case 03: cancel sub => Success', (done) => {
try {
setTimeout(() => {//Wait syncTimeAPI*1000 seconds
ApiReq.cancelSubscription(API_Env.get().headerSet, {
"subscriptionId": testData['subId']
}, (res, url, header, bodyObject) => {
request = JSON.stringify(bodyObject);
request = {
URL: url,
Headers: header,
Body: JSON.parse(request)
};
// response = res.body;
// Expect response headers:x-app,Content-Type
expect(res.statusCode).to.equal(200);
const resBody = JSON.parse(res.body);
response = resBody;
console.log(resBody)
// // token check
expect(resBody.code).to.equal(0);
done();
});
}, 1000);
} catch (e) {
done(e);
}
});
it('case 04 - user purchase a plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userPlanPage.menu_plan);
await baseStep.waitUntilElement(Driver, userPlanPage.plan_page_sign, 20000);
await userPlanPage.selectPlan(Driver, 'Month Plan');
await baseStep.click(Driver, userPlanPage.bank_card);
await baseStep.click(Driver, userPlanPage.OK_btn);
await baseStep.wait(Driver, 1000);
await baseStep.switchWindow(Driver);
await baseStep.waitUntilElement(Driver, userPlanPage.change_card_btn, 20000);
await baseStep.click(Driver, userPlanPage.change_card_btn);
await baseStep.input(Driver, userPlanPage.card_number, '4242424242424242');
await baseStep.input(Driver, userPlanPage.card_expiry, '1234');
await baseStep.wait(Driver, 1000);
await baseStep.input(Driver, userPlanPage.card_cvc, '567');
await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userPlanPage.pay_btn);
await baseStep.waitUntilElement(Driver, userPlanPage.payment_success_sign, 20000);
let actual_success_text = await baseStep.getText(Driver, userPlanPage.payment_success_sign);
await expect("Payment succeeded!").to.equal(actual_success_text);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('case 05 - cancel plan => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
await loginPage.openUserUrl(Driver,);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email, 20000);
await loginPage.loginUserPortal(Driver, testUser)
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userSubPage.menu_my_subscription);
await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userSubPage.End_Subscription_btn);
await baseStep.wait(Driver, 1000);
await baseStep.click(Driver, userSubPage.OK_btn);
await baseStep.screenShot(Driver, savaPath + "/04_cancel_plan.png");
await baseStep.wait(Driver, 3000);
await baseStep.click(Driver, userSubPage.resume_btn);
await baseStep.wait(Driver, 3000);
await baseStep.screenShot(Driver, savaPath + "/05_resume_plan.png");
await baseStep.click(Driver, userPlanPage.OK_confirm);
await baseStep.wait(Driver, 3000);
done();
} catch (e) {
done(e);
} finally {
await Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
let loginPage = require("../../PageObject/LoginPage");
const webdriver = require('selenium-webdriver');
const By = webdriver.By;
const driver = require('../../../CommonStep/Web/seleniumWebDriver');
const baseStep = require('../../../CommonStep/Web/Web_Common_Step');
const addContext = require('mochawesome/addContext');
const {expect} = require("chai");
const searchBarPage = require("../../PageObject/MerchantSearchBarPage");
let request;
let response;
let timeStamp = new Date();
let Driver;
let savaPath = __dirname + "/../../Report/Web/ScreenShot/01_Login_user/" + baseStep.getDateFormat(new Date(),"YYYY-MM-DD_HH:mm:ss");
describe('case01: Logout in User portal=> Success', function() {
this.timeout(100000);
beforeEach(function () {
response = null;
addContext(this, {
title: 'StartTime',
value: {
StartTime: timeStamp = new Date()
}
});
});
afterEach(function () {
if (response) {
addContext(this, {
title: 'Request',
value: {
Request: request
}
});
addContext(this, {
title: 'Response',
value: {
Response: response
}
}); }
addContext(this, {
title: 'EndTime',
value: {
EndTime: timeStamp = new Date()
}
});
});
it('TC001 - Login => Success ', (done) => {
(async () => {
try {
// login
Driver = driver.getDriver(webdriver, 'chrome');
// Check Url
// await loginPage.openUserUrl(Driver,"http://unibee:[email protected]/");
await loginPage.openUserUrl(Driver);
const currentUrl = await Driver.getCurrentUrl();
console.log('当前网址:', currentUrl);
await baseStep.waitUntilElement(Driver, loginPage.user_email,20000);
await baseStep.input(Driver, loginPage.user_email, "[email protected]");
await baseStep.wait(Driver, 2000);
await baseStep.input(Driver,loginPage.user_password, 'Aa@666666');
await baseStep.wait(Driver, 2000);
await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg');
await baseStep.click(Driver, loginPage.submitBtn);
await baseStep.wait(Driver, 2000);
await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg');
await baseStep.wait(Driver, 2000);
await baseStep.click(Driver, loginPage.logout_btn);
await baseStep.wait(Driver, 1000);
await baseStep.screenShot(Driver, savaPath + '/02_Logout.jpeg');
expect(await loginPage.user_email).to.be.exist
done();
}
catch (e) {
done(e);
}finally {
Driver.quit();
}
})();
});
it('Delay 5 seconds ', (done) => {
setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation
done();
}, 5000);
});
});
...@@ -39,7 +39,7 @@ proto.getUserList = function (header, email, cb) { ...@@ -39,7 +39,7 @@ proto.getUserList = function (header, email, cb) {
proto.getSubscription = function (header, userId, cb) { proto.getSubscription = function (header, userId, cb) {
let url = `${this.baseUrl}/merchant/subscription/list?userId=${userId}`; let url = `${this.baseUrl}/merchant/subscription/list?userId=${userId}&count=3&page=1`;
HttpRequest.get(url, header, "", (err, res) => { HttpRequest.get(url, header, "", (err, res) => {
cb(err ? err : res, url, header) cb(err ? err : res, url, header)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment