From 17f1b8852a8c13976f18135c973aa73c4d902d83 Mon Sep 17 00:00:00 2001 From: Dewansh Date: Tue, 14 Jan 2025 19:46:00 +0530 Subject: [PATCH] test: only include required networks for e2e tests (#2149) --- .../src/components/common/ProjectsListing.tsx | 4 +-- .../src/util/CommonUtils.ts | 6 ++-- .../src/util/orbitChainsList.ts | 9 ++++++ .../src/util/wagmi/setup.ts | 31 ++++++++++++++++--- 4 files changed, 42 insertions(+), 8 deletions(-) diff --git a/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx b/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx index 24169687dc..4c5e91dcd4 100644 --- a/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx +++ b/packages/arb-token-bridge-ui/src/components/common/ProjectsListing.tsx @@ -11,7 +11,7 @@ import { getBridgeUiConfigForChain } from '../../util/bridgeUiConfig' import { getChainQueryParamForChain } from '../../types/ChainQueryParam' import { trackEvent } from '../../util/AnalyticsUtils' import { useIsTestnetMode } from '../../hooks/useIsTestnetMode' -import { isTestingEnvironment } from '../../util/CommonUtils' +import { isDevelopmentEnvironment } from '../../util/CommonUtils' const shuffleArray = (array: PortalProject[]) => { return array.sort(() => Math.random() - 0.5) @@ -54,7 +54,7 @@ const fetchProjects = async ( } if (isTestnetMode) { - return isTestingEnvironment ? generateTestnetProjects(chainId, 6) : [] // don't show any test projects in production + return isDevelopmentEnvironment ? generateTestnetProjects(chainId, 6) : [] // don't show any test projects in production } try { diff --git a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts index 987a628792..c1942ccdea 100644 --- a/packages/arb-token-bridge-ui/src/util/CommonUtils.ts +++ b/packages/arb-token-bridge-ui/src/util/CommonUtils.ts @@ -16,5 +16,7 @@ export function shortenTxHash(txHash: string) { )}` } -export const isTestingEnvironment = - !!window.Cypress || process.env.NODE_ENV !== 'production' +export const isE2eTestingEnvironment = + typeof window !== 'undefined' && !!window.Cypress + +export const isDevelopmentEnvironment = process.env.NODE_ENV === 'development' diff --git a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts index fd7bcc9f4b..8444f45ca0 100644 --- a/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts +++ b/packages/arb-token-bridge-ui/src/util/orbitChainsList.ts @@ -1,4 +1,6 @@ import { NativeCurrencyBase } from '../hooks/useNativeCurrency' +import { ChainId } from '../types/ChainId' +import { isE2eTestingEnvironment } from './CommonUtils' import { ChainWithRpcUrl } from './networks' import orbitChainsData from './orbitChainsData.json' @@ -59,6 +61,13 @@ export function getOrbitChains( testnet: boolean } = { mainnet: true, testnet: true } ): OrbitChainConfig[] { + if (isE2eTestingEnvironment) { + // During E2E tests, only return local chains + return Object.values(orbitChains).filter( + chain => chain.chainId === ChainId.L3Local + ) + } + const mainnetChains = mainnet ? Object.values(orbitMainnets) : [] const testnetChains = testnet ? Object.values(orbitTestnets) : [] diff --git a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts index 6c90cb2abf..aded4842ab 100644 --- a/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts +++ b/packages/arb-token-bridge-ui/src/util/wagmi/setup.ts @@ -20,7 +20,10 @@ import { base, baseSepolia } from './wagmiAdditionalNetworks' -import { isTestingEnvironment } from '../CommonUtils' +import { + isE2eTestingEnvironment, + isDevelopmentEnvironment +} from '../CommonUtils' import { getCustomChainsFromLocalStorage, rpcURLs } from '../networks' import { ChainId } from '../../types/ChainId' import { getOrbitChains } from '../orbitChainsList' @@ -47,8 +50,22 @@ const defaultChains = [ holesky ] -const chainList = isTestingEnvironment - ? [ +const getChainList = () => { + // for E2E tests, only have local + minimal required chains + if (isE2eTestingEnvironment) { + return [ + local, + arbitrumLocal, + l3Local, + sepolia, // required for testing cctp + arbitrumSepolia, // required for testing cctp + mainnet // required for import token test + ] + } + + // for local env, have all local + default + user added chains + if (isDevelopmentEnvironment) { + return [ ...defaultChains, // Orbit chains ...wagmiOrbitChains, @@ -59,7 +76,13 @@ const chainList = isTestingEnvironment // user-added custom chains ...customChains ] - : [...defaultChains, ...wagmiOrbitChains, ...customChains] + } + + // for preview + production env, return all non-local chains + return [...defaultChains, ...wagmiOrbitChains, ...customChains] +} + +const chainList = getChainList() const projectId = process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID!