11import selectors from '../fixtures/selectors.json'
22import data from '../fixtures/pangolin-data.json'
33
4- 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
4+ let { testnetBtn } = selectors . dashboard
5+ let { settingBtn, slippageField, tradeDetails, tradeDetailsValues, ordersOpen, 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, approveBtn, noOrders, limitTokensLogo, selectTokenBtn, toInput, buyBtn} = selectors . swap
56let { sellTokenDetailsArr, limitOrderDetailsArr} = data . swap
67function switchingValues ( selectIter , headerAssert , token ) {
78 cy . get ( 'div[class="sc-eCYdqJ sc-dkdnUF fEptdj gilYEX"] div[class="sc-eCYdqJ fEptdj"]' ) . within ( $banner => {
@@ -115,7 +116,7 @@ function confirmTradeDetailsftn (toTokenTitle){
115116function confirmBtnftn ( btnSelector , btnName ) {
116117 cy . get ( btnSelector ) . contains ( btnName ) . should ( 'be.visible' ) ;
117118 cy . get ( btnSelector ) . contains ( btnName ) . should ( "have.css" , "background-color" , "rgb(255, 200, 0)" ) ;
118- cy . get ( btnSelector ) . contains ( btnName ) . click ( )
119+ cy . get ( btnSelector ) . contains ( btnName ) . click ( { force : true } )
119120
120121}
121122
@@ -136,8 +137,29 @@ function limitSellBuyTokenftn(x, y) {
136137 else {
137138 cy . get ( swapBtn ) . contains ( "Invalid condition" ) . should ( 'not.exist' ) ;
138139 }
140+
139141 //Greater than market
140142 cy . get ( priceField ) . clear ( ) . type ( limitArr [ y ] . toFixed ( 2 ) ) ; // Re-enter the incremented value
143+ cy . wait ( 5000 )
144+
145+ // Verify and approve if needed
146+ cy . get ( approveBtn , { timeout : 30000 } ) . then ( ( $buttons ) => {
147+ const approveButton = Cypress . $ ( $buttons ) . filter ( ( _ , button ) => {
148+ const buttonText = Cypress . $ ( button ) . text ( ) . trim ( ) ;
149+ return buttonText . startsWith ( 'Approve' ) ;
150+ } ) ;
151+
152+ if ( approveButton . length ) {
153+ // Token approval is required, perform approval process
154+ cy . wrap ( approveButton ) . click ( ) ;
155+ cy . wait ( 5000 ) ; // Wait for the approval process to complete
156+ cy . confirmMetamaskPermissionToSpend ( ) ;
157+ cy . wait ( 10000 ) ;
158+ // Add assertions here to verify the approval process if needed
159+ }
160+ } ) ;
161+
162+ // swap button
141163 cy . get ( swapBtn ) . contains ( "Place Order" ) . should ( 'be.visible' )
142164 cy . get ( swapBtn ) . contains ( "Place Order" ) . should ( "have.css" , "background-color" , "rgb(255, 200, 0)" ) ;
143165 } ) ;
@@ -171,32 +193,60 @@ function limitSellBuyConfirmDetailsftn(token1, token2) {
171193 expect ( textUpdated ) . to . match ( patternUpdated ) ;
172194 } )
173195
174- cy . get ( limitPrice ) . eq ( 2 ) . should ( 'contain' , '0x33 ...8C60 ' )
196+ cy . get ( limitPrice ) . eq ( 2 ) . should ( 'contain' , '0xa0 ...b166 ' )
175197 }
176198
177- function limitOrdersftn ( navBtn , status ) {
178- cy . get ( confirmSwapDetails ) . eq ( 2 ) . contains ( "Limit Orders" ) . should ( 'be.visible' )
179- cy . get ( openBtn ) . eq ( 2 ) . contains ( navBtn ) . should ( "have.css" , "background-color" , "rgb(17, 17, 17)" )
180- cy . get ( openOrders ) . eq ( 0 ) . should ( 'contain' , status ) ;
181- cy . get ( openOrdersSwitch ) . eq ( 0 ) . click ( )
182- //Limit Order Details
183- for ( var i = 0 ; i <= 3 ; i ++ ) {
184- cy . get ( limitOrderDetails ) . eq ( i + 9 ) . contains ( limitOrderDetailsArr [ i ] ) . should ( 'be.visible' )
199+ function limitOrdersftn ( navBtn , status , logo1 , logo2 ) {
200+ cy . get ( limitTokensLogo ) . eq ( 0 ) . should ( 'have.attr' , 'alt' , `${ logo1 } logo` ) . click ( ) ;
201+ cy . get ( limitTokensLogo ) . eq ( 1 ) . should ( 'have.attr' , 'alt' , `${ logo2 } logo` ) . click ( ) ;
202+ cy . get ( openOrders ) . eq ( 0 ) . contains ( `${ status } ` ) . should ( 'be.visible' ) ;
203+ cy . get ( confirmSwapDetails ) . eq ( 2 ) . contains ( "Limit Orders" ) . should ( 'be.visible' ) ;
204+ cy . get ( openBtn ) . eq ( 2 ) . contains ( navBtn ) . should ( "have.css" , "background-color" , "rgb(17, 17, 17)" ) ;
205+
206+ // Limit Order Details
207+ for ( var i = 0 ; i <= 3 ; i ++ ) {
208+ cy . get ( limitOrderDetails ) . eq ( i + 9 ) . contains ( limitOrderDetailsArr [ i ] ) . should ( 'be.visible' ) ;
185209 }
210+
186211 cy . get ( amountInTokensSwap ) . should ( "not.be.empty" ) ;
187- cy . get ( amountInTokensSwap ) . eq ( 3 ) . contains ( status ) . should ( 'be.visible' )
188- }
212+ cy . get ( amountInTokensSwap ) . eq ( 3 ) . contains ( `${ status } ` ) . should ( 'be.visible' ) ;
213+ }
214+
215+
189216
190217function cancelLimitOrderftn ( ) {
218+ cy . get ( ordersOpen ) . eq ( 0 ) . should ( 'contain' , 'open' ) . then ( ( $element ) => {
219+ const text = $element . text ( ) ;
220+ if ( text . includes ( '(P)' ) ) {
221+ cy . wait ( 20000 )
222+ } } ) ;
223+ cy . get ( ordersOpen ) . eq ( 0 ) . should ( 'contain' , 'open' ) . click ( )
191224 cy . get ( cancelOrderbtn ) . contains ( "Cancel Order" ) . click ( )
192- cy . get ( confirmSwapDetails ) . contains ( "Cancel Order" ) . should ( 'be.visible' )
193- cy . get ( cancelOrderMsg ) . invoke ( 'text' ) . then ( ( text ) => {
225+ cy . get ( confirmSwapDetails ) . contains ( "Cancel Order" ) . should ( 'be.visible' )
226+ cy . get ( cancelOrderMsg ) . invoke ( 'text' ) . then ( ( text ) => {
194227 const pattern = / \b ( U S D C | P N G ) \b / ;
195228 expect ( text ) . to . match ( pattern ) ;
196229 } ) ;
197- cy . get ( executionPrice ) . contains ( "Execution Price" ) . should ( 'be.visible' )
198- cy . get ( cancelOrderBtnPopup ) . contains ( "Cancel Order" ) . should ( 'be.visible' ) . click ( )
199- cy . get ( cancellingOrderMsg ) . contains ( "Cancelling order..." ) . should ( 'be.visible' )
230+ cy . get ( executionPrice ) . contains ( "Execution Price" ) . should ( 'be.visible' )
231+ cy . get ( cancelOrderBtnPopup ) . contains ( "Cancel Order" ) . should ( 'be.visible' ) . click ( )
232+ cy . get ( cancellingOrderMsg ) . contains ( "Cancelling order..." ) . should ( 'be.visible' )
200233}
201234
202- export { switchingValues , tokenDisable , tokenSwitching , slippage , disconnectWallet , connectWallet1 , tradeDetailsftn , selectTokensftn , confirmTradeDetailsftn , confirmBtnftn , limitSellBuyTokenftn , limitSellBuyConfirmDetailsftn , notificationftn , successfulCardftn , limitSellBuyTradeDetailsftn , limitOrdersftn , cancelLimitOrderftn }
235+ function selectLimitTokensftn ( token1 , token2 , amount , buy ) {
236+ cy . get ( testnetBtn ) . contains ( "LIMIT" ) . click ( )
237+ if ( buy === 1 ) {
238+ cy . get ( buyBtn ) . contains ( "BUY" ) . click ( )
239+ }
240+ cy . get ( tokensToSwap ) . click ( )
241+ cy . get ( tokenSearch ) . eq ( 0 ) . type ( token1 )
242+ cy . get ( selectTokens ) . contains ( token1 ) . click ( )
243+ cy . get ( selectTokenBtn ) . contains ( "Select Token" ) . click ( )
244+ cy . get ( tokenSearch ) . eq ( 0 ) . type ( token2 )
245+ cy . get ( selectTokens ) . contains ( token2 ) . click ( )
246+ cy . get ( fromInput ) . type ( amount )
247+ cy . wait ( 5000 ) ;
248+ cy . get ( priceField ) . should ( 'not.have.value' , '0.00' ) ;
249+ cy . get ( toInput ) . should ( 'not.have.value' , '0.00' ) ;
250+ }
251+
252+ export { switchingValues , tokenDisable , tokenSwitching , slippage , disconnectWallet , connectWallet1 , tradeDetailsftn , selectTokensftn , confirmTradeDetailsftn , confirmBtnftn , limitSellBuyTokenftn , limitSellBuyConfirmDetailsftn , notificationftn , successfulCardftn , limitSellBuyTradeDetailsftn , limitOrdersftn , cancelLimitOrderftn , selectLimitTokensftn }
0 commit comments