1
1
import selectors from '../fixtures/selectors.json'
2
2
import data from '../fixtures/pangolin-data.json'
3
3
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
5
6
let { sellTokenDetailsArr, limitOrderDetailsArr} = data . swap
6
7
function switchingValues ( selectIter , headerAssert , token ) {
7
8
cy . get ( 'div[class="sc-eCYdqJ sc-dkdnUF fEptdj gilYEX"] div[class="sc-eCYdqJ fEptdj"]' ) . within ( $banner => {
@@ -115,7 +116,7 @@ function confirmTradeDetailsftn (toTokenTitle){
115
116
function confirmBtnftn ( btnSelector , btnName ) {
116
117
cy . get ( btnSelector ) . contains ( btnName ) . should ( 'be.visible' ) ;
117
118
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 } )
119
120
120
121
}
121
122
@@ -136,8 +137,29 @@ function limitSellBuyTokenftn(x, y) {
136
137
else {
137
138
cy . get ( swapBtn ) . contains ( "Invalid condition" ) . should ( 'not.exist' ) ;
138
139
}
140
+
139
141
//Greater than market
140
142
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
141
163
cy . get ( swapBtn ) . contains ( "Place Order" ) . should ( 'be.visible' )
142
164
cy . get ( swapBtn ) . contains ( "Place Order" ) . should ( "have.css" , "background-color" , "rgb(255, 200, 0)" ) ;
143
165
} ) ;
@@ -171,32 +193,60 @@ function limitSellBuyConfirmDetailsftn(token1, token2) {
171
193
expect ( textUpdated ) . to . match ( patternUpdated ) ;
172
194
} )
173
195
174
- cy . get ( limitPrice ) . eq ( 2 ) . should ( 'contain' , '0x33 ...8C60 ' )
196
+ cy . get ( limitPrice ) . eq ( 2 ) . should ( 'contain' , '0xa0 ...b166 ' )
175
197
}
176
198
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' ) ;
185
209
}
210
+
186
211
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
+
189
216
190
217
function 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 ( )
191
224
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 ) => {
194
227
const pattern = / \b ( U S D C | P N G ) \b / ;
195
228
expect ( text ) . to . match ( pattern ) ;
196
229
} ) ;
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' )
200
233
}
201
234
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