Commit 98f4af55 authored by eddie's avatar eddie Committed by GitHub

fix: stop resetting modal when we interrupt quote polling (#6695)

* test(e2e): disable video compression

* refactor: improve popupList impl/test

* test(e2e): log JSON-RPC calls

* fix: retry backoff logic

* test(e2e): wait for hardhat/popup assertions

* fix: remove transactions after expired

* test(e2e): re-enable other swap tests
Co-authored-by: default avatarJordan Frankfurt <jordanwfrankfurt@gmail.com>

* chore: rm console.log

* fix: expire txs after 6h

* refactor: dry trade info

* test(e2e): use default deadline

* test(e2e): use aliases for permit2 test

* test(e2e): automine/off in beforeEach

* test(e2e): rm intermediate screen with no pause

* fix: stop resetting modal when we interrupt quote polling'

* feat: add e2e test for window losing focus

* fix: move test

* fix: combine tests

---------
Co-authored-by: default avatarZach Pomerantz <zzmp@uniswap.org>
Co-authored-by: default avatarJordan Frankfurt <jordanwfrankfurt@gmail.com>
parent 08b8bdd7
...@@ -53,6 +53,9 @@ describe('Permit2', () => { ...@@ -53,6 +53,9 @@ describe('Permit2', () => {
it('swaps after completing full permit2 approval process', () => { it('swaps after completing full permit2 approval process', () => {
initiateSwap() initiateSwap()
// verify that the modal retains its state when the window loses focus
cy.window().trigger('blur')
// Verify token approval // Verify token approval
cy.contains('Enable spending DAI on Uniswap') cy.contains('Enable spending DAI on Uniswap')
cy.wait('@eth_sendRawTransaction') cy.wait('@eth_sendRawTransaction')
......
...@@ -12,7 +12,6 @@ import { useGetQuoteQuery as useGetQuoteQueryV2 } from 'state/routing/v2Slice' ...@@ -12,7 +12,6 @@ import { useGetQuoteQuery as useGetQuoteQueryV2 } from 'state/routing/v2Slice'
import { InterfaceTrade, QuoteState, TradeState } from './types' import { InterfaceTrade, QuoteState, TradeState } from './types'
const TRADE_INVALID = { state: TradeState.INVALID, trade: undefined } as const
const TRADE_NOT_FOUND = { state: TradeState.NO_ROUTE_FOUND, trade: undefined } as const const TRADE_NOT_FOUND = { state: TradeState.NO_ROUTE_FOUND, trade: undefined } as const
const TRADE_LOADING = { state: TradeState.LOADING, trade: undefined } as const const TRADE_LOADING = { state: TradeState.LOADING, trade: undefined } as const
...@@ -79,7 +78,7 @@ export function useRoutingAPITrade<TTradeType extends TradeType>( ...@@ -79,7 +78,7 @@ export function useRoutingAPITrade<TTradeType extends TradeType>(
return useMemo(() => { return useMemo(() => {
if (!amountSpecified || isError || !queryArgs) { if (!amountSpecified || isError || !queryArgs) {
return TRADE_INVALID return { state: TradeState.INVALID, trade: tradeResult?.trade }
} else if (tradeResult?.state === QuoteState.NOT_FOUND && isCurrent) { } else if (tradeResult?.state === QuoteState.NOT_FOUND && isCurrent) {
return TRADE_NOT_FOUND return TRADE_NOT_FOUND
} else if (!tradeResult?.trade) { } else if (!tradeResult?.trade) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment