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);
} }
......
...@@ -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);
});
});
This diff is collapsed.
This diff is collapsed.
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