Skip to content

Commit

Permalink
code refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
taimuraamer committed Jun 21, 2023
1 parent 710b711 commit b81f7f6
Show file tree
Hide file tree
Showing 6 changed files with 113 additions and 60 deletions.
2 changes: 1 addition & 1 deletion e2e/cypress/fixtures/pangolin-data.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"nativeTokenArr": ["PNG","PFL", "PSB", "x", "PNG", "PCT", "evmPNG", "wagmiPNG", "fujiPNG", "PNG"],
"gasTokenArr": ["AVAX", "FLR", "SGB", "EVMOS", "AVAX", "cFLR", "tEVMOS", "WGMI", "AVAX", "AVAX"],
"testnetNetworkNameArr": ["Avalanche", "Coston", "Evmos Testnet", "Wagmi", "Avalanche Fuji", "Avalanche"],
"nativeTokenDeatilsArr": ["Balance", "Unclaimed", "price", "in circulation", "Total Supply"]
"nativeTokenDeatilsArr": ["Balance", "Unclaimed", "price", "Total Supply"]
},
"swap": {
"aAVAXb": "aAVAXb",
Expand Down
43 changes: 25 additions & 18 deletions e2e/cypress/fixtures/selectors.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
"connectToMetamask": "div[class='sc-iqHYmW jsRmqq']",
"connectWallet":"button[class='sc-fubCzh exdHlk']",
"connected": ".sc-ibxdXY UfbkG css-8visvh",
"gasToken": "div[class='sc-dNUNvd gIgTfO css-8visvh']",
"walletAddress": "p[class='sc-iMyPae hxMMAw']",
"nativeToken": "div[class='sc-dbGSci sc-dYdMIj iJIwio jiEung']",
"gasToken": "div[class='sc-jmdVzn kYCKo css-8visvh']",
"walletAddress": "p[class='sc-kLjoBy hBytEM']",
"nativeToken": "div[class='sc-gdKWnS sc-fkaoMN djcPdi ixgCNr']",
"nativeTokenDeatils": "div[class='sc-iqHYmW fznvqs']",
"nativeTokenLogo": "img[class='sc-ezredP iPgjFG'",
"nativeTokenBalance": "div[class='sc-iqHYmW buqNus'",
"nativeTokenLogo": "img[class='sc-ezredP iPgjFG']",
"nativeTokenBalance": "div[class='sc-iqHYmW buqNus']",
"detailsMenuClose": "svg[class='sc-kOtXPA cEoheH']",
"changeBtn": "button[class='sc-fubCzh fBmMeN sc-lfkgeo sc-ecVXLO sc-gzpPtL bsGctp kvbGwr jMHXmm']",
"changeBtn": "button[class='sc-fubCzh fBmMeN sc-jtazFa sc-iYXQCk sc-eSBXJh bKlgKv gZFcTV imQxVR']",
"walletConnected": "div[class='sc-gYhhMS kUMVn']",
"accountMenuClose": "svg[class='sc-kOtXPA cEoheH']",
"totalAmount": "div[class='sc-iqHYmW iPElRN']",
Expand All @@ -21,7 +21,7 @@
"showBalanceBtn": "div[class='sc-iqHYmW ehuBYI']",
"copyAddress": "button[class='sc-fpqIQw sc-lavCMz dSJKFS gMkWzI']",
"copiedAddress": "span[class='sc-djEslu hqRRlV']",
"networkName": "div[class='sc-bdfBQB sc-iiORxA sc-jflMdB sc-kBrnvl deOOZW bkKduL buLiDv jjwkxw']",
"networkName": "div[class='sc-bdfBQB sc-lkSVJk sc-gqpkzb sc-NGuuG deOOZW ftOKNw MYXyx ebZeoR']",
"networks": "div[class='sc-iqHYmW fqpLOW']",
"swapSideMenu": "a[id='swap']",
"dashboardSideMenu": "a[id='dashboard']",
Expand Down Expand Up @@ -91,8 +91,8 @@
"amountInTokensSwap":"div[class='sc-iqHYmW dQCNBj']",
"tokensToSwap":"span[class='sc-jJEKmz dAlckP token-symbol-container']",
"selectTokens":"div[class='sc-iqHYmW ktkHFj']",
"selectTokensValue":"div[class='sc-iqHYmW sc-igsIFi jlVtaV fampJt']",
"selectTokensMenuClose":"div[class='sc-Mgkma iLVVoZ']",
"selectTokensValue":"div[class='sc-iqHYmW sc-frSLGL jlVtaV SWUXq']",
"selectTokensMenuClose":"div[class='sc-bgxbtk cODQYo']",
"fromInput":"[id='swap-currency-input']",
"toInput":"[id='swap-currency-output']",
"swapBtn":"button[id='swap-button']",
Expand All @@ -109,21 +109,21 @@
"confirmSwapBtn":"button[class='sc-fubCzh cmmhVN']",
"swappingMsg":"div[class='sc-iqHYmW dqzwLX']",
"TransactionSubmitted":"div[class='sc-iqHYmW grNjms']",
"recentTransactions":"div[class='sc-ekwZWc fEIkFO css-1frkxb8']",
"transactionLinks":"a[class='sc-frSLGL kDMmyZ sc-jsNtJQ epYlIv']",
"recentTransactions":"div[class='sc-fIUAFO itZXRL css-1frkxb8']",
"transactionLinks":"a[class='sc-hiAVnf jKUipH sc-fKuKOu cIXBIe']",
"swapSuccessfulTransactionLink":"a[class='sc-iqHYmW sc-dFJtaz kvtIuE iwMDfn']",
"limitSuccessfulTransactionLink":"a[class='sc-iqHYmW sc-nFqVA kvtIuE gPCmBS']",
"clearAll":"button[class='sc-brWPEp fYkeI']",
"transactionAppear":"div[class='sc-ekwZWc CRESh css-gp5dfh']",
"accountMenuCloseSwap":"div[class='sc-kEjbQP sc-fKuKOu iqcNnm fQpOAG']",
"notification":"[class='sc-ekwZWc fEIkFO css-1a92al5']",
"notificationViewOnExplorer":"a[class='sc-frSLGL kDMmyZ']",
"clearAll":"button[class='sc-gJnOmN dDjmVt']",
"transactionAppear":"div[class='sc-fIUAFO henkdw css-gp5dfh']",
"accountMenuCloseSwap":"div[class='sc-kEjbQP sc-iMyPae iqcNnm ekaUlm']",
"notification":"[class='sc-fIUAFO itZXRL css-1a92al5']",
"notificationViewOnExplorer":"a[class='sc-hiAVnf jKUipH']",
"transactionRejected":"div[class='sc-iqHYmW flqkxK']",
"selectTokenBtn":"span[class='sc-jJEKmz jysvvD token-symbol-container']",
"priceField":"input[class='sc-dQoVA cBTceE sc-eLgNKc jWrmCf']",
"sellTokenDetailsValues":"div[class='sc-iqHYmW sc-cOajNj YUTNa fQiDUE']",
"limitPrice":"div[class='sc-iqHYmW gfHqgL']",
"tokenBalances":"div[class='sc-iqHYmW sc-bVa-dBP jlVtaV dyJyvg']",
"tokenBalances":"div[class='sc-iqHYmW sc-frSLGL jlVtaV SWUXq']",
"swapSideMenuSelect": "div[class='sc-gqPbQI ikudoI'] a",
"tradeBtns": "[class='sc-eCYdqJ sc-ftvSup fEptdj bnstfL']",
"fromField": "input[id='swap-currency-input']",
Expand Down Expand Up @@ -157,7 +157,14 @@
"openOrders":"div[class='sc-iqHYmW fppmQG']",
"openOrdersSwitch":"div[class='sc-iqHYmW bROwcC']",
"limitOrderDetails":"div[class='sc-iqHYmW gYCPMW']",
"openOrderSwitched":"div[class='sc-kEjbQP sc-ioVrgq iqcNnm dNLtJK']"
"openOrderSwitched":"div[class='sc-kEjbQP sc-ioVrgq iqcNnm dNLtJK']",
"cancelOrderbtn":"button[class='sc-fubCzh czbHIL']",
"cancelOrderMsg":"div[class='sc-iqHYmW dsooJL']",
"executionPrice":"div[class='sc-iqHYmW eoGjRd']",
"cancelOrderBtnPopup":"button[class='sc-fubCzh cmmhVN']",
"cancellingOrderMsg":"div[class='sc-iqHYmW eWFPnr']",
"cancelLimitSuccessfulTransactionLink":"a[class='sc-iqHYmW sc-bxZmPi iYAkFc oODlg']",
"tokenSearch":"input[class='sc-dQoVA Jeftv']"
},
"pangolinLinks":{
"chart": "[id='charts']",
Expand Down
2 changes: 1 addition & 1 deletion e2e/cypress/src/dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ function nativeDetails(native){
cy.get(nativeTokenBalance, { timeout: 20000 }).should('be.visible')
cy.get(nativeTokenBalance).should('not.be.empty');
cy.wait(10000)
for (var i = 0; i <= 4; i++) {
for (var i = 0; i <= 3; i++) {
cy.get(nativeTokenDeatils).contains(nativeTokenDeatilsArr[i]).should('be.visible')
}
cy.get(detailsMenuClose).click()
Expand Down
40 changes: 26 additions & 14 deletions e2e/cypress/src/swap.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import selectors from '../fixtures/selectors.json'
import data from '../fixtures/pangolin-data.json'

let {settingBtn, slippageField, tradeDetails, tradeDetailsValues, toEstimated, unitPrice, tokensToSwap, selectTokens, fromInput, confirmSwap, confirmSwapDetails, confirmSwapMsg, confirmSwapBtn, priceField, swapBtn, limitPrice, TransactionSubmitted, transactionLinks, notification, notificationViewOnExplorer, sellTokenDetailsValues, openBtn, openOrders, openOrdersSwitch, openOrderSwitched, limitOrderDetails, amountInTokensSwap} = selectors.swap
let {settingBtn, slippageField, tradeDetails, tradeDetailsValues, toEstimated, unitPrice, tokensToSwap, selectTokens, fromInput, confirmSwap, confirmSwapDetails, confirmSwapMsg, confirmSwapBtn, priceField, swapBtn, limitPrice, TransactionSubmitted, transactionLinks, notification, notificationViewOnExplorer, sellTokenDetailsValues, openBtn, openOrders, openOrdersSwitch, openOrderSwitched, limitOrderDetails, amountInTokensSwap, cancelOrderbtn, cancelOrderMsg, executionPrice, cancelOrderBtnPopup, cancellingOrderMsg, tokenSearch} = selectors.swap
let { sellTokenDetailsArr, limitOrderDetailsArr} = data.swap
function switchingValues (selectIter, headerAssert, token) {
cy.get('div[class="sc-eCYdqJ sc-dkdnUF fEptdj gilYEX"] div[class="sc-eCYdqJ fEptdj"]').within( $banner => {
Expand Down Expand Up @@ -65,15 +65,15 @@ function notificationftn(msg) {
});
}

function successfulCardftn(explorerLink){
function successfulCardftn(successBtnSelector, explorerLink){
cy.get(TransactionSubmitted).contains("Transaction Submitted").should('be.visible');
cy.get(explorerLink).each(page => {
cy.request(page.prop('href')).as('link');
});
cy.get('@link').should(response => {
expect(response.status).to.eq(200);
});
confirmBtnftn("Close")
confirmBtnftn(successBtnSelector, "Close")
cy.get(confirmSwapDetails).contains("Trade").should('be.visible')
}

Expand All @@ -92,12 +92,13 @@ function tradeDetailsftn (fromToken, toTokon) {

function selectTokensftn (fromTokenTitle, toTokenTitle){
cy.get(tokensToSwap).eq(0).contains("AVAX").click()
cy.wait(15000)
cy.get(selectTokens).eq(1).should('have.attr', 'title', fromTokenTitle).should('be.visible', { timeout: 30000 })
cy.get(selectTokens).eq(1).should('have.attr', 'title', fromTokenTitle).click()
cy.get(tokenSearch).eq(0).type(fromTokenTitle)
cy.get(selectTokens).eq(0).should('have.attr', 'title', fromTokenTitle).should('be.visible', { timeout: 30000 })
cy.get(selectTokens).eq(0).should('have.attr', 'title', fromTokenTitle).click()
cy.get(tokensToSwap).eq(1).contains("USDC").click()
cy.get(selectTokens).eq(7).should('have.attr', 'title', toTokenTitle).should('be.visible', { timeout: 30000 })
cy.get(selectTokens).eq(7).should('have.attr', 'title', toTokenTitle).click()
cy.get(tokenSearch).eq(0).type(toTokenTitle)
cy.get(selectTokens).eq(0).should('have.attr', 'title', toTokenTitle).should('be.visible', { timeout: 30000 })
cy.get(selectTokens).eq(0).should('have.attr', 'title', toTokenTitle).click()
cy.get(fromInput).type('0.01')
}

Expand All @@ -111,10 +112,10 @@ function confirmTradeDetailsftn (toTokenTitle){
cy.get(confirmSwapMsg).invoke('text').should('match', regexPattern);
}

function confirmBtnftn (btnName){
cy.get(confirmSwapBtn).contains(btnName).should('be.visible');
cy.get(confirmSwapBtn).contains(btnName).should("have.css", "background-color", "rgb(255, 200, 0)");
cy.get(confirmSwapBtn).contains(btnName).click()
function confirmBtnftn (btnSelector,btnName){
cy.get(btnSelector).contains(btnName).should('be.visible');
cy.get(btnSelector).contains(btnName).should("have.css", "background-color", "rgb(255, 200, 0)");
cy.get(btnSelector).contains(btnName).click()

}

Expand Down Expand Up @@ -178,7 +179,6 @@ function limitOrdersftn(navBtn,status){
cy.get(openBtn).eq(2).contains(navBtn).should("have.css", "background-color", "rgb(17, 17, 17)")
cy.get(openOrders).eq(0).should('contain', status);
cy.get(openOrdersSwitch).eq(0).click()
cy.get(openOrderSwitched).should('be.visible')
//Limit Order Details
for (var i = 0; i <= 3; i++){
cy.get(limitOrderDetails).eq(i + 9).contains(limitOrderDetailsArr[i]).should('be.visible')
Expand All @@ -187,4 +187,16 @@ function limitOrdersftn(navBtn,status){
cy.get(amountInTokensSwap).eq(3).contains(status).should('be.visible')
}

export {switchingValues, tokenDisable, tokenSwitching, slippage, disconnectWallet, connectWallet1, tradeDetailsftn, selectTokensftn, confirmTradeDetailsftn, confirmBtnftn, limitSellBuyTokenftn, limitSellBuyConfirmDetailsftn, notificationftn,successfulCardftn, limitSellBuyTradeDetailsftn, limitOrdersftn}
function cancelLimitOrderftn(){
cy.get(cancelOrderbtn).contains("Cancel Order").click()
cy.get(confirmSwapDetails).contains("Cancel Order").should('be.visible')
cy.get(cancelOrderMsg).invoke('text').then((text) => {
const pattern = /\b(USDC|PNG)\b/;
expect(text).to.match(pattern);
});
cy.get(executionPrice).contains("Execution Price").should('be.visible')
cy.get(cancelOrderBtnPopup).contains("Cancel Order").should('be.visible').click()
cy.get(cancellingOrderMsg).contains("Cancelling order...").should('be.visible')
}

export {switchingValues, tokenDisable, tokenSwitching, slippage, disconnectWallet, connectWallet1, tradeDetailsftn, selectTokensftn, confirmTradeDetailsftn, confirmBtnftn, limitSellBuyTokenftn, limitSellBuyConfirmDetailsftn, notificationftn,successfulCardftn, limitSellBuyTradeDetailsftn, limitOrdersftn, cancelLimitOrderftn}
10 changes: 2 additions & 8 deletions e2e/tests/e2e/specs/dashboard.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,14 +66,8 @@ describe('Dashboard', () => {
}
//After switching, the Network name, native token and the gas token in the menu will change to the chain specific ones
cy.get(networkName).should('have.attr', 'title', testnetNetworkNameArr[i + 1]).should('be.visible')
if(i != 1 ){
nativeDetails(i + 5)
}
else{
cy.get(walletAddress).contains('0x33...8C60');
cy.get(walletAddress).invoke('text').should('equal', '0x33...8C60');
cy.get(gasToken, { timeout: 50000 }).invoke('text').should('contain', gasTokenArr[i + 2]);
}
nativeDetails(i + 5)

}

})
Expand Down
Loading

1 comment on commit b81f7f6

@taimuraamer
Copy link
Author

@taimuraamer taimuraamer commented on b81f7f6 Jun 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Reset the changed selectors
  • Refactored the code
  • Automated new scripts
  • Test Run (All Passed)

Reference:
test run

Note:
All Passed (except the limit test scripts that are failing due to an issue, issue has been set to QAT pangolin)

Please sign in to comment.