/**
 * IDs for testing purposes
 */
export const TestID = {
  AccountCard: 'account-card',
  AccountDrawer: 'account-drawer',
  AccountHeaderAvatar: 'account-header-avatar',
  AccountHeaderSettings: 'account-header-settings-icon',
  AccountHeaderCopyAddress: 'account-header-copy-address',
  ActivityTab: 'activity-tab',
  AddCloudBackup: 'add-cloud-backup',
  AddManualBackup: 'add-manual-backup',
  AmountInputIn: 'amount-input-in',
  AmountInputOut: 'amount-input-out',
  Back: 'back',
  BreadcrumbHoverCopy: 'breadcrumb-hover-copy',
  BuyFiatButton: 'buy-fiat-button',
  BuyFormAmountInput: 'buy-form-amount-input',
  Cancel: 'cancal',
  ChooseInputToken: 'choose-input-token',
  ChooseOutputToken: 'choose-output-token',
  ChooseProviderModalClose: 'ChooseProviderModal-close',
  ClaimFeeModalClose: 'ClaimFeeModal-close-icon',
  CompanyMenuMobileDrawer: 'company-menu-mobile-drawer',
  ConfirmationCloseIcon: 'confirmation-close-icon',
  Confirm: 'confirm',
  ConnectingViewWrapperBack: 'ConnectingViewWrapper-back',
  ConnectingViewWrapperClose: 'ConnectingViewWrapper-close',
  Continue: 'continue',
  Copy: 'copy',
  CountryListModalClose: 'CountryListModal-close',
  CreateAccount: 'create-account',
  CreatePasskey: 'create-passkey',
  CurrentBreadcrumb: 'current-breadcrumb',
  DecimalPadBackspace: 'decimal-pad-backspace',
  DecimalPadDecimal: 'decimal-pad-decimal',
  DecimalPadNumber0: 'decimal-pad-0',
  DecimalPadNumber1: 'decimal-pad-1',
  DecimalPadNumber2: 'decimal-pad-2',
  DecimalPadNumber3: 'decimal-pad-3',
  DecimalPadNumber4: 'decimal-pad-4',
  DecimalPadNumber5: 'decimal-pad-5',
  DecimalPadNumber6: 'decimal-pad-6',
  DecimalPadNumber7: 'decimal-pad-7',
  DecimalPadNumber8: 'decimal-pad-8',
  DecimalPadNumber9: 'decimal-pad-9',
  DevFlagsBox: 'dev-flags-box',
  DevFlagsSettingsToggle: 'dev-flags-settings-toggle',
  DialogCloseButton: 'Dialog-closeButton',
  Done: 'done',
  DownloadUniswapApp: 'nav-dropdown-download-app',
  DownloadUniswapModal: 'download-uniswap-modal',
  Edit: 'edit',
  ExploreSearchInput: 'explore-search-input',
  Favorite: 'favorite',
  FiatOnRampCountryPicker: 'fiat-on-ramp-country-picker',
  GasInfoRow: 'gas-info-row',
  ImportAccount: 'import-account',
  ImportAccountInput: 'import-account-input',
  LandingPage: 'landing-page',
  LimitsMenuContainer: 'LimitsMenuContainer',
  LiquidityModalHeaderClose: 'LiquidityModalHeader-close',
  MobileWebSettingsMenu: 'mobile-web-settings-menu',
  NavSearchInput: 'nav-search-input',
  NavUniswapLogo: 'nav-uniswap-logo',
  NavCompanyMenu: 'nav-company-menu',
  NavCompanyDropdown: 'nav-company-dropdown',
  NetworkLogo: 'network-logo',
  NewUserCTAButton: 'new-user-cta-button',
  Next: 'next',
  NFTsTab: 'NFTs-tab',
  NotificationToastTitle: 'notification-toast-title',
  OK: 'ok',
  OnboardingImportSeedPhrase: 'onboarding-import-seed-phrase',
  OnboardingPasskey: 'onboarding-passkey',
  OpenDeviceLanguageSettings: 'open-device-language-settings',
  PDPLinksLoadingSkeleton: 'pdp-links-loading-skeleton',
  QRCodeModalToggle: 'qr-code-modal-toggle',
  PortfolioBalance: 'portfolio-balance',
  PortfolioRelativeChange: 'portfolio-relative-change',
  PriceExplorerAnimatedNumber: 'price-explorer-animated-number',
  PriceExplorerChart: 'price-explorer-chart',
  PriceText: 'price-text',
  RangeInputIncrement: 'range-input-increment',
  RangeInputDecrement: 'range-input-decrement',
  ReadMoreButton: 'read-more-button',
  Remove: 'remove',
  RelativePriceChange: 'relative-price-change',
  ReviewSwap: 'review-swap',
  RestoreFromCloud: 'restore-from-cloud',
  RestoreWallet: 'restore-wallet',
  ReviewTransfer: 'review-transfer',
  RoutePreferenceToggleOptimal: 'route-preference-toggle-Optimal',
  RoutePreferenceToggleV2: 'route-preference-toggle-v2',
  RoutePreferenceToggleV3: 'route-preference-toggle-v3',
  RoutePreferenceToggleUniswapX: 'route-preference-toggle-UniswapX',
  SearchEtherscanItem: 'search-etherscan-item',
  SearchNFTCollectionItem: 'search-nft-collection-item',
  SearchTokenItem: 'search-token-item',
  SearchTokensAndWallets: 'search-tokens-and-wallets',
  SelectRecipient: 'select-recipient',
  SelectWalletScreenLoaded: 'select-wallet-screen-loaded',
  Send: 'send',
  SendModalHeaderLabel: 'send-modal-header-label',
  SendReview: 'send-review',
  SendReviewModal: 'send-review-modal',
  SettingsIconWithSlippage: 'settings-icon-with-slippage',
  SetMaxInput: 'set-max-input',
  SetMaxOutput: 'set-max-output',
  ShowHiddenTokens: 'show-hidden-tokens',
  Skip: 'skip',
  Submit: 'submit',
  Swap: 'swap',
  SwapFormHeader: 'swap-form-header',
  SwapSettings: 'swap-settings',
  SwitchCurrenciesButton: 'switch-currencies-button',
  TableErrorModal: 'table-error-modal',
  TestnetsToggle: 'testnets-toggle',
  TimeSelector: 'time-selector',
  TokenDescriptionFull: 'token-description-full',
  TokenDescriptionTruncated: 'token-description-truncated',
  TokenDetailsAboutHeader: 'token-details-about-header',
  TokenDetailsActionButton: 'token-details-action-button',
  TokenDetailsBuyButton: 'token-details-buy-button',
  TokenDetailsHeaderText: 'token-details-header-text',
  TokenDetailsMobileBottomBar: 'tdp-mobile-bottom-bar',
  TokenDetailsMoreButton: 'token-details-more-button',
  TokenDetailsSellButton: 'token-details-sell-button',
  TokenDetailsSwapButton: 'token-details-swap-button',
  TokenLinkCopy: 'token-link-copy',
  TokenLinkEtherscan: 'token-link-etherscan',
  TokenLinkTwitter: 'token-link-twitter',
  TokenLinkWebsite: 'token-link-website',
  TokenSelectorToggle: 'token-selector-toggle',
  TokensTab: 'tokens-tab',
  TokenWarningAccept: 'token-warning-accept',
  ToggleUniswapXButton: 'toggle-uniswap-x-button',
  UKDisclaimer: 'uk-disclaimer',
  WalletBuyCrypto: 'wallet-buy-crypto',
  WalletCard: 'wallet-card',
  WalletDisconnect: 'wallet-disconnect',
  WalletNameInput: 'wallet-name-input',
  WalletQRCode: 'wallet-qr-code',
  WalletReceiveCrypto: 'wallet-receive-crypto',
  WalletSettings: 'wallet-settings',
  WatchWallet: 'watch-wallet',
  Web3StatusConnected: 'web3-status-connected',
  WCDappNetworks: 'wc-dapp-networks',
  WCDappSwitchAccount: 'wc-dapp-switch-account',
  // alphabetize additional values.
} as const

export type TestIDType = (typeof TestID)[keyof typeof TestID]

export type TestIDIterableType = `${(typeof TestID)[keyof typeof TestID]}-${number}`

export type TestIDwithSufixType = `${(typeof TestID)[keyof typeof TestID]}-${string}`
