uniswap-interface-uncensored/cypress/e2e/token-explore.test.ts

75 lines
3.7 KiB
TypeScript
Raw Normal View History

import { getTestSelector, getTestSelectorStartsWith } from '../utils'
describe('Token explore', () => {
before(() => {
cy.visit('/')
})
it('should load token leaderboard', () => {
cy.visit('/tokens/ethereum')
cy.get(getTestSelectorStartsWith('token-table')).its('length').should('be.greaterThan', 0)
// check sorted svg icon is present in volume cell, since tokens are sorted by volume by default
cy.get(getTestSelector('header-row')).find(getTestSelector('volume-cell')).find('svg').should('exist')
cy.get(getTestSelector('token-table-row-ETH')).find(getTestSelector('name-cell')).should('include.text', 'Ether')
cy.get(getTestSelector('token-table-row-ETH')).find(getTestSelector('volume-cell')).should('include.text', '$')
cy.get(getTestSelector('token-table-row-ETH')).find(getTestSelector('price-cell')).should('include.text', '$')
cy.get(getTestSelector('token-table-row-ETH')).find(getTestSelector('tvl-cell')).should('include.text', '$')
cy.get(getTestSelector('token-table-row-ETH'))
.find(getTestSelector('percent-change-cell'))
.should('include.text', '%')
cy.get(getTestSelector('header-row')).find(getTestSelector('price-cell')).click()
cy.get(getTestSelector('header-row')).find(getTestSelector('price-cell')).find('svg').should('exist')
})
it('should update when time window toggled', () => {
cy.visit('/tokens/ethereum')
cy.get(getTestSelector('time-selector')).should('contain', '1D')
cy.get(getTestSelector('token-table-row-ETH'))
.find(getTestSelector('volume-cell'))
.then(function ($elem) {
cy.wrap($elem.text()).as('dailyEthVol')
})
cy.get(getTestSelector('time-selector')).click()
cy.get(getTestSelector('1Y')).click()
cy.get(getTestSelector('token-table-row-ETH'))
.find(getTestSelector('volume-cell'))
.then(function ($elem) {
cy.wrap($elem.text()).as('yearlyEthVol')
})
expect(cy.get('@dailyEthVol')).to.not.equal(cy.get('@yearlyEthVol'))
})
it('should navigate to token detail page when row clicked', () => {
cy.visit('/tokens/ethereum')
cy.get(getTestSelector('token-table-row-ETH')).click()
cy.get(getTestSelector('token-details-about-section')).should('exist')
cy.get(getTestSelector('token-details-stats')).should('exist')
cy.get(getTestSelector('token-info-container')).should('exist')
cy.get(getTestSelector('chart-container')).should('exist')
cy.contains('Ethereum is a smart contract platform that enables developers to build tokens').should('exist')
cy.contains('Etherscan').should('exist')
})
it('should update when global network changed', () => {
cy.visit('/tokens/ethereum')
cy.get(getTestSelector('tokens-network-filter-selected')).should('contain', 'Ethereum')
cy.get(getTestSelector('token-table-row-ETH')).should('exist')
// note: cannot switch global chain via UI because we cannot approve the network switch
// in metamask modal using plain cypress. this is a workaround.
cy.visit('/tokens/polygon')
cy.get(getTestSelector('tokens-network-filter-selected')).should('contain', 'Polygon')
cy.get(getTestSelector('token-table-row-MATIC')).should('exist')
})
it('should update when token explore table network changed', () => {
cy.visit('/tokens/ethereum')
cy.get(getTestSelector('tokens-network-filter-selected')).click()
cy.get(getTestSelector('tokens-network-filter-option-optimism')).click()
cy.get(getTestSelector('tokens-network-filter-selected')).should('contain', 'Optimism')
cy.reload()
cy.get(getTestSelector('tokens-network-filter-selected')).should('contain', 'Optimism')
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.get(getTestSelector('chain-selector-logo')).invoke('attr', 'alt').should('eq', 'Ethereum')
})
})