uniswap-interface-uncensored/cypress/e2e/landing.test.ts

89 lines
2.8 KiB
TypeScript
Raw Permalink Normal View History

import { getTestSelector } from '../utils'
import { CONNECTED_WALLET_USER_STATE, DISCONNECTED_WALLET_USER_STATE } from '../utils/user-state'
2020-05-11 16:03:44 +03:00
describe('Landing Page', () => {
it('shows landing page when no user state exists', () => {
cy.visit('/', { userState: DISCONNECTED_WALLET_USER_STATE })
cy.get(getTestSelector('landing-page'))
cy.screenshot()
})
it('redirects to swap page when a user has already connected a wallet', () => {
cy.visit('/', { userState: CONNECTED_WALLET_USER_STATE })
Refactor ExchangePage into Swap and Send pages (#774) * Part 1, separate swap and send, move duplicate code into separate files * Move some more constants out of the swap/send * Support defaults from URL parameters * Implement query string parsing via a redux action * Finish merging the changes * Fix the slippage warnings * Clean up some other files * More refactoring * Move the price bar out of the component * Move advanced details and some computations into utilities * Make same improvements to send * Approval hook * Swap page functional with swap callback hook * Swap/send page functional with swap callback hook * Fix lint * Move styleds.ts * Fix integration test * Fix error state in swap and move some things around * Move send callback out of send page * Make send behave more like current behavior * Differentiate swap w/o send on send page from swap w/o send on swap page * Remove userAdvanced which was always false * Remove the price bar which is not used in the new UI * Delete the file * Fix null in the send dialog and move another component out of send * Move the swap modal header out to another file * Include change after merge * Add recipient to swap message * Keep input token selected if user has no balance and clicks send with swap * Move the modal footer out of send component * Remove the hard coded estimated time * Fix the label/action for swap/sends * Share the swap modal footer between swap and send * Fix integration test * remove margin from popper to suppress warnings fix missing ENS name recipient link default deadline to 15 minutes * ensure useApproveCallback returns accurate data * clean up callbacks * extra space * Re-apply ignored changes from v2 branch ExchangePage file Co-authored-by: Noah Zinsmeister <noahwz@gmail.com>
2020-05-17 00:55:22 +03:00
cy.get('#swap-page')
cy.url().should('include', '/swap')
cy.screenshot()
2020-05-11 16:03:44 +03:00
})
it('shows landing page when a user has already connected a wallet but ?intro=true is in query', () => {
cy.visit('/?intro=true', { userState: CONNECTED_WALLET_USER_STATE })
cy.get(getTestSelector('landing-page'))
})
it('shows landing page when the unicorn icon in nav is selected', () => {
cy.visit('/swap')
cy.get(getTestSelector('uniswap-logo')).click()
cy.get(getTestSelector('landing-page'))
})
2020-05-11 16:03:44 +03:00
it('allows navigation to pool', () => {
feat: ✨🤑 Portfolios 🖼✨ (#6216) * feat: squash mgtm differences w/ public repo into new base commit to fix rebase issues going forward * feat: new settings menu (#85) * feat: new settings flow * feat: add statsig geo gate for MGTM assets (#91) * init * feat: geo-gate mgtm features & wallet tab * feat: new theme toggle (#86) * feat: new theme toggle * fix: import * refactor: polish * refactor: use enum instead of string union * feat: mini portfolio tabs (#88) * feat: mini portfolio tabs * feat: feature flag * feat: portfolio query (#89) * feat: portfolio balance query * polish * fix: added todo for api key * feat: tokens mini-portfolio tab (#93) * feat: tokens tab * fix: lint * fix: pr comment polish * fix: snapshot update * feat: common portfolio row component (#99) * feat: porfolio row component * fix: updated layout * feat: update token row design (#100) * feat: porfolio row component * fix: updated layout * fix: updated tokens tab to latest design * fix: unnused export * feat: dropdown drawer (#95) * inital drawer * feat: animated drawer * fix: attempt animation perf fix * fix: lint * feat: better animations * fix: scrim * refactor: const name * test: update chain switcher test * test: update chain switcher test id * feat: Add NFT tab for mini porftolio (#104) * add NFT tab * add min width to verified icon size * add keyArgs to nftBalances query so that different callers dont override query cache * revert yarn node changes * use flex shrink * move styled components to top * navigate to nft page * update snapshot test after adding gap to Row * Update src/components/WalletDropdown/MiniPortfolio/NFT.tsx Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> --------- Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> * fix scroll behavior (#105) * feat: portfolio loading state (#106) * feat: loading state for token row * fix: revert hardcoded loading states * fix: removed unused component * feat: activity feed tab (#103) * init * feat: ens avatars * feat: etherscan api experiment * fix: ignore error policy * polish * fix: query pageSize * fix: revert redux change * fix: small polish item * fix: pr comments * fix: translated activity titles * fix: typing and todo comment * todo comment * fix: accidental chain name mismatch * feat: remove dropdown chevron (#110) * feat: small drawer UI updates (#109) * feat: small changes * fix: resize status icon w/ ens * fix: commented css * feat: activity loading state (#108) * feat: activity loading state * fix: unused wrapper * fix: activity/nftbalance cache overlap * fix: mp sidebar width adjustment (#112) * fix: mp sidebar width adjustment * fix: navbar breakpoints * feat: nav bar MenuDropdown updates (#107) * feat: nav bar MenuDropdown updates * fix: pool breakpoints * fix: pool in menu dropdown * fix: lints * fix: tests * feat: swap click updates (#111) * feat: swap click updates * fix: updates * fix: simplify * fix: snapshots * fix: snapshots * feat: collapse button (#113) * feat: collapse button * fix: esc keypress and animation * fix: MP scrollbar (#115) * feat: hide small balances in token list (#116) * feat: collapse button (#113) * feat: collapse button * fix: esc keypress and animation * chore: merge * fix: updates * feat: show the hidden tokens at the bottom * feat: empty balance state for tokens (#118) * feat: empty balance state for tokens * fix: balance change check * fix: token inputs on TDP widget (#120) * feat: remove quick swap button (#125) * fix: nft activity descriptor (#119) * fix: improper substring usage error * pr comments + small fix * feat: add mini portfolio events (#126) * add events * fix failing snapshot test * incorporate eddie comment * fix chain switching (#127) * feat: pre-parse activity to catch errors (#129) * feat: update wallet option icons (#128) * feat: update wallet option icons * feat: theme-aware injected logo, svg logos * fix: rabby extension * feat: uni icons avatars (#130) * feat: update wallet option icons * feat: theme-aware injected logo, svg logos * fix: rabby extension * feat: update avatar / icon logic * fix: remove testing hardcoded socks balance * fix: add isTrustWallet check * feat: pools tab (#122) * init * feat: working cross-chain calls * feat: inline range text * feat: better multicall perf * feat: loading state * feat: pools persist between mounts * feat: polish * fix: small refactors * remove stuff to split into sep pr * fix: remove comment * fix: judo PR comments * fix: currencyKey case * fix: eddie's comment * fix (#134) * feat: removed microsite content, updated responsiveness for wallet tab (#137) * fix: injector unit tests (#136) * fix: injector unit tests * fix: lint --------- Co-authored-by: cartcrom <cartergcromer@gmail.com> * feat: toggle closed positions (#138) * rename file * refactored hidden row to use for closed positions * fix: remove unnused atom * fix: lint * feat: MP tab empty states (#132) * feat: squash mgtm differences w/ public repo into new base commit to fix rebase issues going forward * feat: new settings menu (#85) * feat: new settings flow * feat: add statsig geo gate for MGTM assets (#91) * init * feat: geo-gate mgtm features & wallet tab * feat: new theme toggle (#86) * feat: new theme toggle * fix: import * refactor: polish * refactor: use enum instead of string union * feat: mini portfolio tabs (#88) * feat: mini portfolio tabs * feat: feature flag * feat: portfolio query (#89) * feat: portfolio balance query * polish * fix: added todo for api key * feat: tokens mini-portfolio tab (#93) * feat: tokens tab * fix: lint * fix: pr comment polish * fix: snapshot update * feat: common portfolio row component (#99) * feat: porfolio row component * fix: updated layout * feat: update token row design (#100) * feat: porfolio row component * fix: updated layout * fix: updated tokens tab to latest design * fix: unnused export * feat: dropdown drawer (#95) * inital drawer * feat: animated drawer * fix: attempt animation perf fix * fix: lint * feat: better animations * fix: scrim * refactor: const name * test: update chain switcher test * test: update chain switcher test id * feat: Add NFT tab for mini porftolio (#104) * add NFT tab * add min width to verified icon size * add keyArgs to nftBalances query so that different callers dont override query cache * revert yarn node changes * use flex shrink * move styled components to top * navigate to nft page * update snapshot test after adding gap to Row * Update src/components/WalletDropdown/MiniPortfolio/NFT.tsx Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> --------- Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> * fix scroll behavior (#105) * feat: portfolio loading state (#106) * feat: loading state for token row * fix: revert hardcoded loading states * fix: removed unused component * feat: activity feed tab (#103) * init * feat: ens avatars * feat: etherscan api experiment * fix: ignore error policy * polish * fix: query pageSize * fix: revert redux change * fix: small polish item * fix: pr comments * fix: translated activity titles * fix: typing and todo comment * todo comment * fix: accidental chain name mismatch * feat: remove dropdown chevron (#110) * feat: small drawer UI updates (#109) * feat: small changes * fix: resize status icon w/ ens * fix: commented css * init * feat: working cross-chain calls * feat: inline range text * feat: better multicall perf * feat: activity loading state (#108) * feat: activity loading state * fix: unused wrapper * feat: loading state * feat: pools persist between mounts * fix: activity/nftbalance cache overlap * fix: mp sidebar width adjustment (#112) * fix: mp sidebar width adjustment * fix: navbar breakpoints * feat: nav bar MenuDropdown updates (#107) * feat: nav bar MenuDropdown updates * fix: pool breakpoints * fix: pool in menu dropdown * fix: lints * fix: tests * feat: swap click updates (#111) * feat: swap click updates * fix: updates * fix: simplify * fix: snapshots * fix: snapshots * feat: collapse button (#113) * feat: collapse button * fix: esc keypress and animation * fix: MP scrollbar (#115) * feat: hide small balances in token list (#116) * feat: collapse button (#113) * feat: collapse button * fix: esc keypress and animation * chore: merge * fix: updates * feat: show the hidden tokens at the bottom * feat: empty balance state for tokens (#118) * feat: empty balance state for tokens * fix: balance change check * fix: token inputs on TDP widget (#120) * feat: polish * fix: small refactors * remove stuff to split into sep pr * fix: remove comment * feat: remove quick swap button (#125) * fix: nft activity descriptor (#119) * fix: improper substring usage error * pr comments + small fix * feat: add mini portfolio events (#126) * add events * fix failing snapshot test * incorporate eddie comment * fix chain switching (#127) * feat: pre-parse activity to catch errors (#129) * fix: activity/nftbalance cache overlap * fix: mp sidebar width adjustment (#112) * fix: mp sidebar width adjustment * fix: navbar breakpoints * feat: nav bar MenuDropdown updates (#107) * feat: nav bar MenuDropdown updates * fix: pool breakpoints * fix: pool in menu dropdown * fix: lints * fix: tests * feat: swap click updates (#111) * feat: swap click updates * fix: updates * fix: simplify * fix: snapshots * fix: snapshots * feat: collapse button (#113) * feat: collapse button * fix: esc keypress and animation * fix: MP scrollbar (#115) * feat: hide small balances in token list (#116) * feat: collapse button (#113) * feat: collapse button * fix: esc keypress and animation * chore: merge * fix: updates * feat: show the hidden tokens at the bottom * feat: empty balance state for tokens (#118) * feat: empty balance state for tokens * fix: balance change check * fix: token inputs on TDP widget (#120) * feat: remove quick swap button (#125) * fix: nft activity descriptor (#119) * fix: improper substring usage error * pr comments + small fix * feat: add mini portfolio events (#126) * add events * fix failing snapshot test * incorporate eddie comment * fix chain switching (#127) * feat: pre-parse activity to catch errors (#129) * feat: start empty state updates * feat: update wallet option icons (#128) * feat: update wallet option icons * feat: theme-aware injected logo, svg logos * fix: rabby extension * feat: empty wallet states w/ good positioning * feat: finish empty states w/ theme aware icons * fix: judo PR comments * fix: currencyKey case * feat: uni icons avatars (#130) * feat: update wallet option icons * feat: theme-aware injected logo, svg logos * fix: rabby extension * feat: update avatar / icon logic * fix: remove testing hardcoded socks balance * fix: add isTrustWallet check * fix: eddie's comment * feat: pools tab (#122) * init * feat: working cross-chain calls * feat: inline range text * feat: better multicall perf * feat: loading state * feat: pools persist between mounts * feat: polish * fix: small refactors * remove stuff to split into sep pr * fix: remove comment * fix: judo PR comments * fix: currencyKey case * fix: eddie's comment * fix (#134) * feat: removed microsite content, updated responsiveness for wallet tab (#137) * fix: injector unit tests (#136) * fix: injector unit tests * fix: lint --------- Co-authored-by: cartcrom <cartergcromer@gmail.com> * fix: pool loading state * fix: simplify pools loading state * fix: removed unused var * feat: toggle closed positions (#138) * rename file * refactored hidden row to use for closed positions * fix: remove unnused atom * fix: lint * fix: dry * fix: lint * fix: address review comments * fix: lints * fix: bad merge --------- Co-authored-by: cartcrom <cartergcromer@gmail.com> Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> Co-authored-by: Tina <59578595+tinaszheng@users.noreply.github.com> Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com> * make sure mp is above tax service banner (#142) * feat: add git version number to settings menu (#141) * fix: remove unicon tooltip (#146) * feat: remove unicon tooltip from mobile and timer prop * fix: flip bool logic * fix: small nits for mp from fred (#150) * fixes * fix * feat: Local tx activity (#148) * local swap working * feat: cross-chain * fix: revert query changes * feat: local approvals * feat: wrapped activity * feat: local lp tx history * fix: add doc comment * fix: linted * fix: no pools render error (#152) * feat: mp activity feed design tweaks (#145) * feat: squash mgtm differences w/ public repo into new base commit to fix rebase issues going forward * feat: new settings menu (#85) * feat: new settings flow * feat: add statsig geo gate for MGTM assets (#91) * init * feat: geo-gate mgtm features & wallet tab * feat: new theme toggle (#86) * feat: new theme toggle * fix: import * refactor: polish * refactor: use enum instead of string union * feat: mini portfolio tabs (#88) * feat: mini portfolio tabs * feat: feature flag * feat: portfolio query (#89) * feat: portfolio balance query * polish * fix: added todo for api key * feat: tokens mini-portfolio tab (#93) * feat: tokens tab * fix: lint * fix: pr comment polish * fix: snapshot update * feat: common portfolio row component (#99) * feat: porfolio row component * fix: updated layout * feat: update token row design (#100) * feat: porfolio row component * fix: updated layout * fix: updated tokens tab to latest design * fix: unnused export * feat: dropdown drawer (#95) * inital drawer * feat: animated drawer * fix: attempt animation perf fix * fix: lint * feat: better animations * fix: scrim * refactor: const name * test: update chain switcher test * test: update chain switcher test id * feat: Add NFT tab for mini porftolio (#104) * add NFT tab * add min width to verified icon size * add keyArgs to nftBalances query so that different callers dont override query cache * revert yarn node changes * use flex shrink * move styled components to top * navigate to nft page * update snapshot test after adding gap to Row * Update src/components/WalletDropdown/MiniPortfolio/NFT.tsx Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> --------- Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> * fix scroll behavior (#105) * feat: portfolio loading state (#106) * feat: loading state for token row * fix: revert hardcoded loading states * fix: removed unused component * feat: activity feed tab (#103) * init * feat: ens avatars * feat: etherscan api experiment * fix: ignore error policy * polish * fix: query pageSize * fix: revert redux change * fix: small polish item * fix: pr comments * fix: translated activity titles * fix: typing and todo comment * todo comment * fix: accidental chain name mismatch * feat: remove dropdown chevron (#110) * feat: small drawer UI updates (#109) * feat: small changes * fix: resize status icon w/ ens * fix: commented css * feat: activity loading state (#108) * feat: activity loading state * fix: unused wrapper * fix: activity/nftbalance cache overlap * fix: mp sidebar width adjustment (#112) * fix: mp sidebar width adjustment * fix: navbar breakpoints * feat: nav bar MenuDropdown updates (#107) * feat: nav bar MenuDropdown updates * fix: pool breakpoints * fix: pool in menu dropdown * fix: lints * fix: tests * feat: swap click updates (#111) * feat: swap click updates * fix: updates * fix: simplify * fix: snapshots * fix: snapshots * feat: collapse button (#113) * feat: collapse button * fix: esc keypress and animation * fix: MP scrollbar (#115) * feat: hide small balances in token list (#116) * feat: collapse button (#113) * feat: collapse button * fix: esc keypress and animation * chore: merge * fix: updates * feat: show the hidden tokens at the bottom * feat: empty balance state for tokens (#118) * feat: empty balance state for tokens * fix: balance change check * fix: token inputs on TDP widget (#120) * feat: remove quick swap button (#125) * fix: nft activity descriptor (#119) * fix: improper substring usage error * pr comments + small fix * feat: add mini portfolio events (#126) * add events * fix failing snapshot test * incorporate eddie comment * fix chain switching (#127) * feat: pre-parse activity to catch errors (#129) * feat: update wallet option icons (#128) * feat: update wallet option icons * feat: theme-aware injected logo, svg logos * fix: rabby extension * wip * feat: uni icons avatars (#130) * feat: update wallet option icons * feat: theme-aware injected logo, svg logos * fix: rabby extension * feat: update avatar / icon logic * fix: remove testing hardcoded socks balance * fix: add isTrustWallet check * feat: pools tab (#122) * init * feat: working cross-chain calls * feat: inline range text * feat: better multicall perf * feat: loading state * feat: pools persist between mounts * feat: polish * fix: small refactors * remove stuff to split into sep pr * fix: remove comment * fix: judo PR comments * fix: currencyKey case * fix: eddie's comment * fix (#134) * wip with activity status icons * feat: removed microsite content, updated responsiveness for wallet tab (#137) * fix: injector unit tests (#136) * fix: injector unit tests * fix: lint --------- Co-authored-by: cartcrom <cartergcromer@gmail.com> * temp * in progress * text, and activity status changes working. missing logo changes * fix lint issues * refactor: square logo location * feat: merge other activity changes --------- Co-authored-by: cartcrom <cartergcromer@gmail.com> Co-authored-by: cartcrom <39385577+cartcrom@users.noreply.github.com> Co-authored-by: Tina <59578595+tinaszheng@users.noreply.github.com> Co-authored-by: eddie <66155195+just-toby@users.noreply.github.com> * feat: portfolio polling/refetching/performance (#154) * init * feat: implement asset polling & tx updating balances * add refetching to activity tab * fix: re-add error policy * fix: add TODO * fix: fix scroll + console warnings on mini portfolio nfts (#155) * fixes * rename * init (#158) * fix: browser wallet icons (#156) * fix: moved border radius css (#157) * feat: token details state for BNB (#151) * fix: update token details missing flow * refactor * fix: lint * fix: add bnb to queries * feat: add comment explaining unsupported chains * fix: remove buy crypto animation (#160) * fix: price display pools tab (#159) * fix: price display pools tab * fix: lint * feat: pools tab performance (#123) * init * fix: pr comments * update cache return type * refactor: rename type * fix: further pr comments * fix: remove stringify * refactor: readability and caching * fix: zach pr comments * fix: removed hardcoded value * feat: catch position errors for chains * fix: add todo comment for followup ticket * fix: build issue from merge conflict * refactor: split up token caching function * feat: separate array slicing into util with tests * feat: close wallet drawer on wallet connection (#161) * feat: close wallet drawer on wallet connection * feat: added comment explaining fetchPolicy * fix: only close if open * refactor: add comment about ref * fix: revert change to useAllTokens & rename with more descriptive name (#163) * fix: square Arbitrum logo design changes (#162) * feat: close wallet drawer on wallet connection * feat: added comment explaining fetchPolicy * fix: only close if open * init * fixes * fix border radius --------- Co-authored-by: cartcrom <cartergcromer@gmail.com> * fix: token loading state (#165) * fix: remove unnused code and comments * fix: privacy policy date * fix: revert readme change * fix: remove unnused FOR file * fix: missed query id * fix: add id to portfolios query * fix: widget cypress test --------- Co-authored-by: Tina <59578595+tinaszheng@users.noreply.github.com> Co-authored-by: eddie <66155195+just-toby@users.noreply.github.com> Co-authored-by: lynn <41491154+lynnshaoyu@users.noreply.github.com>
2023-03-22 18:29:26 +03:00
cy.viewport(2000, 1600)
cy.visit('/swap')
cy.get(getTestSelector('pool-nav-link')).first().click()
cy.url().should('include', '/pools')
2020-05-11 16:03:44 +03:00
})
it('allows navigation to pool on mobile', () => {
cy.viewport('iphone-6')
cy.visit('/swap')
cy.get(getTestSelector('pool-nav-link')).last().click()
cy.url().should('include', '/pools')
})
it('does not render landing page when / path is blocked', () => {
cy.intercept('/', (req) => {
req.reply((res) => {
const parser = new DOMParser()
const doc = parser.parseFromString(res.body, 'text/html')
const meta = document.createElement('meta')
meta.setAttribute('property', 'x:blocked-paths')
meta.setAttribute('content', '/,/buy')
doc.head.appendChild(meta)
res.body = doc.documentElement.outerHTML
})
})
cy.visit('/', { userState: DISCONNECTED_WALLET_USER_STATE })
cy.get(getTestSelector('landing-page')).should('not.exist')
cy.get(getTestSelector('buy-fiat-button')).should('not.exist')
cy.url().should('include', '/swap')
})
it('does not render uk compliance banner in US', () => {
cy.visit('/swap')
cy.contains('UK disclaimer').should('not.exist')
})
it('renders uk compliance banner in uk', () => {
cy.intercept('https://api.uniswap.org/v1/amplitude-proxy', (req) => {
const requestBody = JSON.stringify(req.body)
const byteSize = new Blob([requestBody]).size
req.alias = 'amplitude'
req.reply(
JSON.stringify({
code: 200,
server_upload_time: Date.now(),
payload_size_bytes: byteSize,
events_ingested: req.body.events.length,
}),
{
'origin-country': 'GB',
}
)
})
cy.visit('/swap')
cy.contains('UK disclaimer')
})
2020-05-11 16:03:44 +03:00
})