Merge branch 'main' into 'master'
Main
See merge request !5
Showing
| ... | @@ -32,7 +32,7 @@ class Login_Page { | ... | @@ -32,7 +32,7 @@ class Login_Page { |
| } | } | ||
| loginMerchant = async function (driver, email='[email protected]', password ='changeme' ){ | loginMerchant = async function (driver, email='[email protected]', password ='Aa@666666' ){ | ||
| console.log("Login with email: " + email); | console.log("Login with email: " + email); | ||
| await baseStep.waitUntilElement(driver, this.email,20000); | await baseStep.waitUntilElement(driver, this.email,20000); | ||
| await baseStep.input(driver, this.email, email); | await baseStep.input(driver, this.email, email); | ||
| ... | ... |
| ... | @@ -61,12 +61,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = count=> Suc | ... | @@ -61,12 +61,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = count=> Suc |
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | console.log('当前网址:', currentUrl); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, loginPage.email,20000); | ||
| await baseStep.input(Driver, loginPage.email, '[email protected]'); | await loginPage.loginMerchant(Driver) | ||
| await baseStep.wait(Driver, 2000); | |||
| await baseStep.input(Driver,loginPage.password, 'changeme'); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg'); | |||
| await baseStep.click(Driver, loginPage.submitBtn); | |||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | ||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| ... | @@ -146,12 +141,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = count uniqu | ... | @@ -146,12 +141,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = count uniqu |
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | console.log('当前网址:', currentUrl); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, loginPage.email,20000); | ||
| await baseStep.input(Driver, loginPage.email, '[email protected]'); | await loginPage.loginMerchant(Driver) | ||
| await baseStep.wait(Driver, 2000); | |||
| await baseStep.input(Driver,loginPage.password, 'changeme'); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg'); | |||
| await baseStep.click(Driver, loginPage.submitBtn); | |||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | ||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| ... | @@ -232,12 +222,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = latest=> Su | ... | @@ -232,12 +222,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = latest=> Su |
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | console.log('当前网址:', currentUrl); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, loginPage.email,20000); | ||
| await baseStep.input(Driver, loginPage.email, '[email protected]'); | await loginPage.loginMerchant(Driver) | ||
| await baseStep.wait(Driver, 2000); | |||
| await baseStep.input(Driver,loginPage.password, 'changeme'); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg'); | |||
| await baseStep.click(Driver, loginPage.submitBtn); | |||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | ||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| ... | @@ -318,12 +303,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = max=> Succe | ... | @@ -318,12 +303,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = max=> Succe |
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | console.log('当前网址:', currentUrl); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, loginPage.email,20000); | ||
| await baseStep.input(Driver, loginPage.email, '[email protected]'); | await loginPage.loginMerchant(Driver) | ||
| await baseStep.wait(Driver, 2000); | |||
| await baseStep.input(Driver,loginPage.password, 'changeme'); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg'); | |||
| await baseStep.click(Driver, loginPage.submitBtn); | |||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | ||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| ... | @@ -404,12 +384,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = sum=> Succe | ... | @@ -404,12 +384,7 @@ describe('Add billable metric in Merchant Portal, Aggregation Type = sum=> Succe |
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | console.log('当前网址:', currentUrl); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, loginPage.email,20000); | ||
| await baseStep.input(Driver, loginPage.email, '[email protected]'); | await loginPage.loginMerchant(Driver) | ||
| await baseStep.wait(Driver, 2000); | |||
| await baseStep.input(Driver,loginPage.password, 'changeme'); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg'); | |||
| await baseStep.click(Driver, loginPage.submitBtn); | |||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | ||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| ... | ... |
| ... | @@ -61,12 +61,7 @@ describe('Add discount code in Merchant Portal, one time use, percentage=> Succe | ... | @@ -61,12 +61,7 @@ describe('Add discount code in Merchant Portal, one time use, percentage=> Succe |
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | console.log('当前网址:', currentUrl); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, loginPage.email,20000); | ||
| await baseStep.input(Driver, loginPage.email, '[email protected]'); | await loginPage.loginMerchant(Driver) | ||
| await baseStep.wait(Driver, 2000); | |||
| await baseStep.input(Driver,loginPage.password, 'changeme'); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg'); | |||
| await baseStep.click(Driver, loginPage.submitBtn); | |||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | ||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| ... | @@ -153,12 +148,7 @@ describe('Add discount code in Merchant Portal, Recurring, percentage=> Success' | ... | @@ -153,12 +148,7 @@ describe('Add discount code in Merchant Portal, Recurring, percentage=> Success' |
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | console.log('当前网址:', currentUrl); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, loginPage.email,20000); | ||
| await baseStep.input(Driver, loginPage.email, '[email protected]'); | await loginPage.loginMerchant(Driver) | ||
| await baseStep.wait(Driver, 2000); | |||
| await baseStep.input(Driver,loginPage.password, 'changeme'); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg'); | |||
| await baseStep.click(Driver, loginPage.submitBtn); | |||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | ||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| ... | @@ -246,12 +236,7 @@ describe('Add discount code in Merchant Portal, one time use, fixed amount=> Suc | ... | @@ -246,12 +236,7 @@ describe('Add discount code in Merchant Portal, one time use, fixed amount=> Suc |
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | console.log('当前网址:', currentUrl); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, loginPage.email,20000); | ||
| await baseStep.input(Driver, loginPage.email, '[email protected]'); | await loginPage.loginMerchant(Driver) | ||
| await baseStep.wait(Driver, 2000); | |||
| await baseStep.input(Driver,loginPage.password, 'changeme'); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg'); | |||
| await baseStep.click(Driver, loginPage.submitBtn); | |||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | ||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| ... | @@ -339,12 +324,7 @@ describe('Add discount code in Merchant Portal, Recurring, fixed amount=> Succes | ... | @@ -339,12 +324,7 @@ describe('Add discount code in Merchant Portal, Recurring, fixed amount=> Succes |
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | console.log('当前网址:', currentUrl); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, loginPage.email,20000); | ||
| await baseStep.input(Driver, loginPage.email, '[email protected]'); | await loginPage.loginMerchant(Driver) | ||
| await baseStep.wait(Driver, 2000); | |||
| await baseStep.input(Driver,loginPage.password, 'changeme'); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver,savaPath + '/01_login.jpeg'); | |||
| await baseStep.click(Driver, loginPage.submitBtn); | |||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | await baseStep.screenShot(Driver,savaPath + '/02_Menu.jpeg'); | ||
| await baseStep.wait(Driver, 1000); | await baseStep.wait(Driver, 1000); | ||
| ... | ... |
| ... | @@ -3,6 +3,7 @@ let userPlanPage = require("../../PageObject/UserPlanPage"); | ... | @@ -3,6 +3,7 @@ let userPlanPage = require("../../PageObject/UserPlanPage"); |
| let userMySubPage = require("../../PageObject/UserMySubPage"); | let userMySubPage = require("../../PageObject/UserMySubPage"); | ||
| let userInvoicePage = require("../../PageObject/UserInvoicePage") | let userInvoicePage = require("../../PageObject/UserInvoicePage") | ||
| let merchantTransactionPage = require("../../PageObject/MerchantTransactionPage") | let merchantTransactionPage = require("../../PageObject/MerchantTransactionPage") | ||
| let merchantMyAccount = require("../../PageObject/MerchantMyAccountPage") | |||
| const urlencoded = require('urlencode'); | const urlencoded = require('urlencode'); | ||
| const webdriver = require('selenium-webdriver'); | const webdriver = require('selenium-webdriver'); | ||
| ... | @@ -12,7 +13,7 @@ const baseStep = require('../../../CommonStep/Web/Web_Common_Step'); | ... | @@ -12,7 +13,7 @@ const baseStep = require('../../../CommonStep/Web/Web_Common_Step'); |
| const API_Object = require("../../../CommonStep/API/API_Object"); | const API_Object = require("../../../CommonStep/API/API_Object"); | ||
| const API_Env = require("../../../CommonStep/API/API_Env"); | const API_Env = require("../../../CommonStep/API/API_Env"); | ||
| const ApiReq = new API_Object("http://localhost:8088"); | const ApiReq = new API_Object("http://api.unibee.top"); | ||
| const addContext = require('mochawesome/addContext'); | const addContext = require('mochawesome/addContext'); | ||
| const {expect} = require("chai"); | const {expect} = require("chai"); | ||
| ... | @@ -26,7 +27,7 @@ let Driver; | ... | @@ -26,7 +27,7 @@ let Driver; |
| let savaPath = __dirname + "/../../Report/Web/ScreenShot/07_Account_info/" + baseStep.getDateFormat(new Date(),"YYYY-MM-DD_HH:mm:ss"); | let savaPath = __dirname + "/../../Report/Web/ScreenShot/07_Account_info/" + baseStep.getDateFormat(new Date(),"YYYY-MM-DD_HH:mm:ss"); | ||
| let testData = []; | let testData = []; | ||
| let testUser = "[email protected]"; | let testUser = "[email protected]"; | ||
| describe('TS001: Transaction with Succeeded=> Success', function() { | describe('TS001: update account info=> Success', function() { | ||
| this.timeout(9000000); | this.timeout(9000000); | ||
| beforeEach(function () { | beforeEach(function () { | ||
| ... | @@ -61,593 +62,7 @@ describe('TS001: Transaction with Succeeded=> Success', function() { | ... | @@ -61,593 +62,7 @@ describe('TS001: Transaction with Succeeded=> Success', function() { |
| } | } | ||
| }); | }); | ||
| it('Case 01: login => Success', (done) => { | it('case 01 - update my account info => Success ', (done) => { | ||
| try { | |||
| setTimeout(() => {//Wait syncTimeAPI*1000 seconds | |||
| ApiReq.login(API_Env.get().headerSet,{ | |||
| "email": "[email protected]", | |||
| "password":"changeme" | |||
| },(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); | |||
| testData["token"] = resBody.data.token; | |||
| done(); | |||
| }); | |||
| }, 1000); | |||
| } catch (e) { | |||
| done(e); | |||
| } | |||
| }); | |||
| it('Case 02: 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 03: 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 04: 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 -Transaction 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, 1000); | |||
| 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 - check transaction 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, merchantTransactionPage.menu_transaction); | |||
| await baseStep.wait(Driver,2000); | |||
| await merchantTransactionPage.checkRecordTransactionList(Driver, "€24.4","Succeeded","Payment", "stripe"); | |||
| 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('TS002: Transaction with Pending=> 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: login => Success', (done) => { | |||
| try { | |||
| setTimeout(() => {//Wait syncTimeAPI*1000 seconds | |||
| ApiReq.login(API_Env.get().headerSet,{ | |||
| "email": "[email protected]", | |||
| "password":"changeme" | |||
| },(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); | |||
| testData["token"] = resBody.data.token; | |||
| done(); | |||
| }); | |||
| }, 1000); | |||
| } catch (e) { | |||
| done(e); | |||
| } | |||
| }); | |||
| it('Case 02: 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 03: 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 04: 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 - Transaction with pending => 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.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 transaction 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, merchantTransactionPage.menu_transaction); | |||
| await baseStep.wait(Driver,2000); | |||
| await merchantTransactionPage.checkRecordTransactionList(Driver, "€24.4","Pending","Payment", "Wire Transfer"); | |||
| 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('TS003: Transaction with Failed=> 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: login => Success', (done) => { | |||
| try { | |||
| setTimeout(() => {//Wait syncTimeAPI*1000 seconds | |||
| ApiReq.login(API_Env.get().headerSet,{ | |||
| "email": "[email protected]", | |||
| "password":"changeme" | |||
| },(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); | |||
| testData["token"] = resBody.data.token; | |||
| done(); | |||
| }); | |||
| }, 1000); | |||
| } catch (e) { | |||
| done(e); | |||
| } | |||
| }); | |||
| it('Case 02: 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 03: 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 04: 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 - Transaction with failed => 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.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.click(Driver,userMySubPage.cancel_sub_button); | |||
| await baseStep.wait(Driver,1000); | |||
| await baseStep.click(Driver,userMySubPage.cancel_confirm_button); | |||
| await baseStep.wait(Driver,2000); | |||
| done(); | |||
| } | |||
| catch (e) { | |||
| done(e); | |||
| }finally { | |||
| await Driver.quit(); | |||
| } | |||
| })(); | |||
| }); | |||
| it('case 06 - check transaction in merchant portal => Success ', (done) => { | |||
| (async () => { | (async () => { | ||
| try { | try { | ||
| // login | // login | ||
| ... | @@ -655,211 +70,30 @@ describe('TS003: Transaction with Failed=> Success', function() { | ... | @@ -655,211 +70,30 @@ describe('TS003: Transaction with Failed=> Success', function() { |
| // Check Url | // Check Url | ||
| await loginPage.openMerchantUrl(Driver); | await loginPage.openMerchantUrl(Driver); | ||
| const currentUrl = await Driver.getCurrentUrl(); | const currentUrl = await Driver.getCurrentUrl(); | ||
| console.log('当前网址:', currentUrl); | await loginPage.loginMerchant(Driver); | ||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | await baseStep.waitUntilElement(Driver, merchantMyAccount.menu_My_Account); | ||
| await loginPage.loginMerchant(Driver) | await baseStep.click(Driver, merchantMyAccount.menu_My_Account); | ||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.click(Driver, merchantTransactionPage.menu_transaction); | |||
| await baseStep.wait(Driver,2000); | |||
| await merchantTransactionPage.checkRecordTransactionList(Driver, "€24.4","Failed","Payment", "Wire Transfer"); | |||
| 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('TS004: Transaction with refund => 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: login => Success', (done) => { | |||
| try { | |||
| setTimeout(() => {//Wait syncTimeAPI*1000 seconds | |||
| ApiReq.login(API_Env.get().headerSet,{ | |||
| "email": "[email protected]", | |||
| "password":"changeme" | |||
| },(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); | |||
| testData["token"] = resBody.data.token; | |||
| done(); | |||
| }); | |||
| }, 1000); | |||
| } catch (e) { | |||
| done(e); | |||
| } | |||
| }); | |||
| it('Case 02: 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 03: 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 04: 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 stripe in user portal => 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.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,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.wait(Driver,1000); | ||
| await baseStep.input(Driver,userPlanPage.card_cvc, '567'); | await baseStep.inputWithClear(Driver, merchantMyAccount.company_name, "Automation Update Name"); | ||
| await baseStep.inputWithClear(Driver, merchantMyAccount.physical_address, "Automation Update Address"); | |||
| await baseStep.inputWithClear(Driver, merchantMyAccount.company_email, "[email protected]"); | |||
| await baseStep.inputWithClear(Driver, merchantMyAccount.company_phone, "12345678910"); | |||
| await baseStep.click(Driver, merchantMyAccount.save_btn); | |||
| await baseStep.wait(Driver,10000); | |||
| await baseStep.screenShot(Driver, savaPath + '/01_update_info'); | |||
| await baseStep.compareValueText(Driver, merchantMyAccount.company_name, "Automation Update Name"); | |||
| await baseStep.compareValueText(Driver, merchantMyAccount.physical_address, "Automation Update Address"); | |||
| await baseStep.compareValueText(Driver, merchantMyAccount.company_email, "[email protected]"); | |||
| await baseStep.compareValueText(Driver, merchantMyAccount.company_phone, "12345678910"); | |||
| await baseStep.wait(Driver,3000); | await baseStep.wait(Driver,3000); | ||
| await baseStep.click(Driver, userPlanPage.pay_btn); | await baseStep.inputWithClear(Driver, merchantMyAccount.company_name, "Automation Company"); | ||
| await baseStep.waitUntilElement(Driver,userPlanPage.payment_success_sign,50000); | await baseStep.inputWithClear(Driver, merchantMyAccount.physical_address, "Test Address"); | ||
| let actual_success_text = await baseStep.getText(Driver,userPlanPage.payment_success_sign); | await baseStep.inputWithClear(Driver, merchantMyAccount.company_email, "[email protected]"); | ||
| await expect("Payment succeeded!").to.equal(actual_success_text); | await baseStep.inputWithClear(Driver, merchantMyAccount.company_phone, "15642543250"); | ||
| await baseStep.click(Driver, merchantMyAccount.save_btn); | |||
| await baseStep.wait(Driver,10000); | |||
| await baseStep.screenShot(Driver, savaPath + '/02_revert_info'); | |||
| await baseStep.wait(Driver,3000); | await baseStep.wait(Driver,3000); | ||
| done(); | done(); | ||
| } | } | ||
| catch (e) { | catch (e) { | ||
| ... | @@ -870,70 +104,6 @@ describe('TS004: Transaction with refund => Success', function() { | ... | @@ -870,70 +104,6 @@ describe('TS004: Transaction with refund => Success', function() { |
| })(); | })(); | ||
| }); | }); | ||
| it('case 06 - refund 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.click(Driver, merchantInvoicePage.refund_btn); | |||
| await baseStep.input(Driver, merchantInvoicePage.refund_reason, "refund reason"); | |||
| await baseStep.input(Driver, merchantInvoicePage.refund_amount, "1"); | |||
| await baseStep.click(Driver, merchantInvoicePage.refund_confirm); | |||
| await baseStep.wait(Driver, 10000); | |||
| await baseStep.refreshPage(Driver); | |||
| await merchantInvoicePage.checkRecordInvoiceList(Driver, | |||
| "-€1","Credit Note","Refunded", "stripe", testUser); | |||
| done(); | |||
| } | |||
| catch (e) { | |||
| done(e); | |||
| }finally { | |||
| await Driver.quit(); | |||
| } | |||
| })(); | |||
| }); | |||
| it('case 07 - check transaction 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, merchantTransactionPage.menu_transaction); | |||
| await baseStep.wait(Driver,2000); | |||
| await merchantTransactionPage.checkRecordTransactionList(Driver, "€1","Succeeded","Refund", "stripe"); | |||
| done(); | |||
| } | |||
| catch (e) { | |||
| done(e); | |||
| }finally { | |||
| await Driver.quit(); | |||
| } | |||
| })(); | |||
| }); | |||
| it('Delay 5 seconds ', (done) => { | it('Delay 5 seconds ', (done) => { | ||
| setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation | setTimeout(() => {// TODO Need wait about syncTimeAPI second after last operation | ||
| ... | ... |
| let loginPage = require("../../PageObject/LoginPage"); | |||
| let userPlanPage = require("../../PageObject/UserPlanPage"); | |||
| let userMySubPage = require("../../PageObject/UserMySubPage"); | |||
| let userInvoicePage = require("../../PageObject/UserInvoicePage") | |||
| let MerchantSubscriptionPage = require("../../PageObject/MerchantSubscriptionPage") | |||
| 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("http://localhost:8088"); | |||
| const addContext = require('mochawesome/addContext'); | |||
| const {expect} = require("chai"); | |||
| const {wait} = require("../../../CommonStep/Web/Web_Common_Step"); | |||
| const merchantInvoicePage = require("../../PageObject/MerchantInvoicePage"); | |||
| const discountCodePage = require("../../PageObject/MerchantDiscountCodePage"); | |||
| let request; | |||
| let response; | |||
| let timeStamp = new Date(); | |||
| let Driver; | |||
| let savaPath = __dirname + "/../../Report/Web/ScreenShot/08_Subscription/" + baseStep.getDateFormat(new Date(),"YYYY-MM-DD_HH:mm:ss"); | |||
| let testData = []; | |||
| let testUser = "[email protected]"; | |||
| describe('TS001: cancel subscription in merchant=> 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: login => Success', (done) => { | |||
| try { | |||
| setTimeout(() => {//Wait syncTimeAPI*1000 seconds | |||
| ApiReq.login(API_Env.get().headerSet,{ | |||
| "email": "[email protected]", | |||
| "password":"changeme" | |||
| },(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); | |||
| testData["token"] = resBody.data.token; | |||
| done(); | |||
| }); | |||
| }, 1000); | |||
| } catch (e) { | |||
| done(e); | |||
| } | |||
| }); | |||
| it('Case 02: 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 03: 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 04: 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, "http://unibee:123456@localhost:8086/login/"); | |||
| 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, 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 - cancel sub in merchant portal => Success ', (done) => { | |||
| (async () => { | |||
| try { | |||
| // login | |||
| Driver = driver.getDriver(webdriver, 'chrome'); | |||
| // Check Url | |||
| await loginPage.openMerchantUrl(Driver, "http://unibee:123456@localhost/plan/list/"); | |||
| const currentUrl = await Driver.getCurrentUrl(); | |||
| console.log('当前网址:', currentUrl); | |||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | |||
| await loginPage.loginMerchant(Driver, "[email protected]", "changeme") | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.waitUntilElement(Driver, MerchantSubscriptionPage.menu_subscription) | |||
| 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.end_subscription); | |||
| await baseStep.click(Driver, MerchantSubscriptionPage.end_immediately); | |||
| await baseStep.screenShot(Driver, savaPath+'/01_cancel_sub'); | |||
| await baseStep.click(Driver, MerchantSubscriptionPage.end_OK_btn); | |||
| await baseStep.wait(Driver,2000); | |||
| await baseStep.screenShot(Driver, savaPath+'/02_cancel_result'); | |||
| await expect(await baseStep.getText(Driver,MerchantSubscriptionPage.sub_status)).to.equal("Cancelled"); | |||
| 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('TS002: change subscription in merchant=> 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: login => Success', (done) => { | |||
| try { | |||
| setTimeout(() => {//Wait syncTimeAPI*1000 seconds | |||
| ApiReq.login(API_Env.get().headerSet,{ | |||
| "email": "[email protected]", | |||
| "password":"changeme" | |||
| },(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); | |||
| testData["token"] = resBody.data.token; | |||
| done(); | |||
| }); | |||
| }, 1000); | |||
| } catch (e) { | |||
| done(e); | |||
| } | |||
| }); | |||
| it('Case 02: 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 03: 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 04: 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, "http://unibee:123456@localhost:8086/login/"); | |||
| 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, 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 sub in merchant portal => Success ', (done) => { | |||
| (async () => { | |||
| try { | |||
| // login | |||
| Driver = driver.getDriver(webdriver, 'chrome'); | |||
| // Check Url | |||
| await loginPage.openMerchantUrl(Driver, "http://unibee:123456@localhost/plan/list/"); | |||
| const currentUrl = await Driver.getCurrentUrl(); | |||
| console.log('当前网址:', currentUrl); | |||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | |||
| await loginPage.loginMerchant(Driver, "[email protected]", "changeme") | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.waitUntilElement(Driver, MerchantSubscriptionPage.menu_subscription) | |||
| 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.change_sub_btn); | |||
| await baseStep.wait(Driver,2000); | |||
| await MerchantSubscriptionPage.selectTargetPlan(Driver, "Update Plan"); | |||
| await baseStep.wait(Driver,1000); | |||
| await baseStep.click(Driver, MerchantSubscriptionPage.change_OK_btn); | |||
| await baseStep.wait(Driver,1000); | |||
| await baseStep.screenShot(Driver, savaPath+'/03_change_sub'); | |||
| await baseStep.click(Driver, MerchantSubscriptionPage.change_confirm); | |||
| await baseStep.wait(Driver,10000); | |||
| await baseStep.screenShot(Driver, savaPath+'/04_change_result'); | |||
| await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.sub_plan)).to.equal("Update Plan"); | |||
| 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('TS003: change Due date=> 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: login => Success', (done) => { | |||
| try { | |||
| setTimeout(() => {//Wait syncTimeAPI*1000 seconds | |||
| ApiReq.login(API_Env.get().headerSet,{ | |||
| "email": "[email protected]", | |||
| "password":"changeme" | |||
| },(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); | |||
| testData["token"] = resBody.data.token; | |||
| done(); | |||
| }); | |||
| }, 1000); | |||
| } catch (e) { | |||
| done(e); | |||
| } | |||
| }); | |||
| it('Case 02: 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 03: 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 04: 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, "http://unibee:123456@localhost:8086/login/"); | |||
| 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, 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 due date => Success ', (done) => { | |||
| (async () => { | |||
| try { | |||
| // login | |||
| Driver = driver.getDriver(webdriver, 'chrome'); | |||
| // Check Url | |||
| await loginPage.openMerchantUrl(Driver, "http://unibee:123456@localhost/plan/list/"); | |||
| const currentUrl = await Driver.getCurrentUrl(); | |||
| console.log('当前网址:', currentUrl); | |||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | |||
| await loginPage.loginMerchant(Driver, "[email protected]", "changeme") | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.waitUntilElement(Driver, MerchantSubscriptionPage.menu_subscription) | |||
| await baseStep.click(Driver, MerchantSubscriptionPage.menu_subscription); | |||
| await baseStep.wait(Driver,2000); | |||
| await MerchantSubscriptionPage.selectSubByPlanName(Driver, "Month Plan"); | |||
| await MerchantSubscriptionPage.setDueDate(Driver, 3); | |||
| await baseStep.wait(Driver, 1000); | |||
| await baseStep.screenShot(Driver, savaPath+'/05_change_due_date'); | |||
| await baseStep.click(Driver, MerchantSubscriptionPage.due_date_OK_btn); | |||
| await baseStep.wait(Driver,2000); | |||
| 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"); | |||
| await baseStep.screenShot(Driver, savaPath+'/06_change_due_date_result'); | |||
| await expect(await baseStep.getText(Driver, MerchantSubscriptionPage.change_due_date_info)).to.equal("+3 days → " + expectDate); | |||
| await baseStep.wait(Driver,5000); | |||
| 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 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("http://localhost:8088"); | |||
| const addContext = require('mochawesome/addContext'); | |||
| const {expect} = require("chai"); | |||
| const {wait} = require("../../../CommonStep/Web/Web_Common_Step"); | |||
| const merchantInvoicePage = require("../../PageObject/MerchantInvoicePage"); | |||
| const discountCodePage = require("../../PageObject/MerchantDiscountCodePage"); | |||
| let request; | |||
| let response; | |||
| let timeStamp = new Date(); | |||
| let Driver; | |||
| let savaPath = __dirname + "/../../Report/Web/ScreenShot/09_user_list/" + baseStep.getDateFormat(new Date(),"YYYY-MM-DD_HH:mm:ss"); | |||
| let testData = []; | |||
| let testUser = "[email protected]"; | |||
| describe('TS001: add user 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 - add a new user => Success ', (done) => { | |||
| (async () => { | |||
| try { | |||
| // login | |||
| Driver = driver.getDriver(webdriver, 'chrome'); | |||
| // Check Url | |||
| await loginPage.openMerchantUrl(Driver, "http://unibee:123456@localhost/plan/list/"); | |||
| const currentUrl = await Driver.getCurrentUrl(); | |||
| console.log('当前网址:', currentUrl); | |||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | |||
| await loginPage.loginMerchant(Driver, "[email protected]", "changeme") | |||
| 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.screenShot(Driver, savaPath + "/01_add_user"); | |||
| await baseStep.click(Driver, userListPage.new_OK_btn); | |||
| await baseStep.wait(Driver,1000); | |||
| await baseStep.screenShot(Driver, savaPath + "/02_user_list"); | |||
| await userListPage.checkRecordUserList(Driver, "Testing QA"+time, "Auto"+ time + "@test.com","Active"); | |||
| await baseStep.scrollIntoView(Driver,userListPage.suspend_btn); | |||
| await baseStep.click(Driver, userListPage.suspend_btn); | |||
| await baseStep.screenShot(Driver, savaPath + "/03_suspend_user"); | |||
| await baseStep.click(Driver, userListPage.suspend_confirm_btn); | |||
| await baseStep.click(Driver, userListPage.menu_user_list); | |||
| await baseStep.wait(Driver,2000); | |||
| await baseStep.screenShot(Driver, savaPath + "/04_suspend_result"); | |||
| await userListPage.checkRecordUserList(Driver, "Testing QA"+time, "Auto"+ time + "@test.com","Suspended"); | |||
| 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('TS002: Assign 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, "http://unibee:123456@localhost/plan/list/"); | |||
| const currentUrl = await Driver.getCurrentUrl(); | |||
| console.log('当前网址:', currentUrl); | |||
| await baseStep.waitUntilElement(Driver, loginPage.email,20000); | |||
| await loginPage.loginMerchant(Driver, "[email protected]", "changeme") | |||
| 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.screenShot(Driver, savaPath + "/05_add_user"); | |||
| await baseStep.click(Driver, userListPage.new_OK_btn); | |||
| await baseStep.wait(Driver,1000); | |||
| await baseStep.screenShot(Driver, savaPath + "/06_user_list"); | |||
| 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.wait(Driver,1000); | |||
| await baseStep.screenShot(Driver, savaPath + "/07_assign_sub"); | |||
| await baseStep.click(Driver, userListPage.assign_OK_btn); | |||
| await baseStep.wait(Driver,3000); | |||
| await baseStep.screenShot(Driver, savaPath + "/08_assign_result"); | |||
| await baseStep.compareText(Driver, userListPage.current_text, "Current Subscription"); | |||
| await baseStep.compareText(Driver, userListPage.current_plan, "Month Plan"); | |||
| await baseStep.compareText(Driver, userListPage.current_plan_des, "Month Plan"); | |||
| await baseStep.compareText(Driver, userListPage.current_status, "Incomplete"); | |||
| 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); | |||
| }); | |||
| }); | |||
Please
register
or
sign in
to comment