synapsecns/sanguine

View on GitHub
packages/synapse-interface/__tests__/getToTokens.test.ts

Summary

Maintainability
D
2 days
Test Coverage
import { expect } from '@jest/globals'

import { getToTokens } from '@/utils/routeMaker/getToTokens'
import { mockRoutes } from './__fixtures__/mockRoutes'

jest.mock('../constants/existingBridgeRoutes', () => ({
  get EXISTING_BRIDGE_ROUTES() {
    return mockRoutes
  },
}))

jest.mock('../utils/flattenPausedTokens', () => ({
  __esModule: true,
  flattenPausedTokens: jest.fn(() => {
    return []
  }),
}))

jest.mock('../constants/tokens/bridgeable', () => ({
  __esModule: true,
  '*': jest.fn(() => {
    return []
  }),
}))

describe('getToTokens', () => {
  it('has fromChainId', () => {
    const toTokens = getToTokens({
      fromChainId: 8217,
      fromTokenRouteSymbol: null,
      toChainId: null,
      toTokenRouteSymbol: null,
    })

    expect(toTokens.sort()).toEqual(
      [
        'AVAX-1284',
        'AVAX-1666600000',
        'AVAX-43114',
        'AVAX-53935',
        'BTC.b-43114',
        'BTC.b-53935',
        'DAI-1',
        'DAI-2000',
        'JEWEL-1666600000',
        'JEWEL-43114',
        'JEWEL-53935',
        'KLAY-53935',
        'LINK-1',
        'USDC-1',
        'USDC-2000',
        'USDT-1',
        'USDT-2000',
        'WAVAX-43114',
        'WBTC-1',
        'WBTC-2000',
        'WJEWEL-53935',
        'synJEWEL-1666600000',
      ].sort()
    )
  })

  it('has fromChainId, toChainId', () => {
    const toTokens = getToTokens({
      fromChainId: 1,
      fromTokenRouteSymbol: null,
      toChainId: 8453,
      toTokenRouteSymbol: null,
    })

    expect(toTokens).toEqual([
      'crvUSD-8453',
      'DAI-8453',
      'USDC-8453',
      'axlUSDC-8453',
      'USDbC-8453',
      'ETH-8453',
      'nETH-8453',
      'SYN-8453',
      'UNIDX-8453',
    ])
  })

  it('has fromChainId, fromToken, toChainId', () => {
    const toTokens = getToTokens({
      fromChainId: 8453,
      fromTokenRouteSymbol: 'crvUSD',
      toChainId: 10,
      toTokenRouteSymbol: null,
    })

    expect(toTokens).toEqual([
      'USDC-10',
      'USDC.e-10',
      'sUSD-10',
      'USDT-10',
      'DAI-10',
    ])
  })

  it('has fromTokenRouteSymbol, toChainId', () => {
    const toTokens = getToTokens({
      fromChainId: null,
      fromTokenRouteSymbol: 'USDC',
      toChainId: 10,
      toTokenRouteSymbol: null,
    })

    expect(toTokens).toEqual([
      'USDC-10',
      'nUSD-10',
      'USDC.e-10',
      'sUSD-10',
      'USDT-10',
      'DAI-10',
    ])
  })

  it('has fromChainId, fromToken, toChainId, toToken', () => {
    const toTokens = getToTokens({
      fromChainId: 1,
      fromTokenRouteSymbol: 'USDC',
      toChainId: 10,
      toTokenRouteSymbol: 'USDC',
    })

    expect(toTokens).toEqual([
      'USDC-10',
      'nUSD-10',
      'USDC.e-10',
      'sUSD-10',
      'USDT-10',
      'DAI-10',
    ])
  })

  it('has fromChainId, fromToken', () => {
    const toTokens = getToTokens({
      fromChainId: 8217,
      fromTokenRouteSymbol: 'BTC.b',
      toChainId: null,
      toTokenRouteSymbol: null,
    })

    expect(toTokens).toEqual(['BTC.b-43114', 'BTC.b-53935'])
  })

  it('has fromChainId, toToken', () => {
    const toTokens = getToTokens({
      fromChainId: 42161,
      fromTokenRouteSymbol: null,
      toChainId: null,
      toTokenRouteSymbol: 'crvUSD',
    })

    expect(toTokens.sort()).toEqual(
      [
        'BUSD-56',
        'DAI-1',
        'DAI-10',
        'DAI-137',
        'DAI-288',
        'DAI-8453',
        'DAI.e-43114',
        'ETH-1',
        'ETH-10',
        'ETH-288',
        'ETH-53935',
        'ETH-7700',
        'ETH-8453',
        'GMX-43114',
        'H2O-1',
        'H2O-10',
        'H2O-1284',
        'H2O-1285',
        'H2O-137',
        'H2O-43114',
        'H2O-56',
        'L2DAO-10',
        'NEWO-1',
        'NEWO-43114',
        'NOTE-7700',
        'PEPE-1',
        'PLS-10',
        'SDT-1',
        'SDT-1666600000',
        'SDT-250',
        'SDT-43114',
        'SYN-1',
        'SYN-10',
        'SYN-1088',
        'SYN-1284',
        'SYN-1285',
        'SYN-1313161554',
        'SYN-137',
        'SYN-1666600000',
        'SYN-2000',
        'SYN-25',
        'SYN-250',
        'SYN-288',
        'SYN-43114',
        'SYN-56',
        'SYN-7700',
        'SYN-8453',
        'UNIDX-1',
        'UNIDX-10',
        'UNIDX-250',
        'UNIDX-8453',
        'USDC-1',
        'USDC-10',
        'USDC-137',
        'USDC-25',
        'USDC-288',
        'USDC-43114',
        'USDC-53935',
        'USDC-56',
        'USDC-7700',
        'USDC-8453',
        'USDC.e-10',
        'USDC.e-1313161554',
        'USDC.e-43114',
        'USDT-1',
        'USDT-10',
        'USDT-137',
        'USDT-288',
        'USDT-43114',
        'USDT-56',
        'USDT-7700',
        'USDT.e-1313161554',
        'USDT.e-43114',
        'USDbC-8453',
        'VSTA-1',
        'WETH-1088',
        'WETH.e-43114',
        'axlUSDC-8453',
        'crvUSD-8453',
        'gOHM-1',
        'gOHM-10',
        'gOHM-1088',
        'gOHM-1284',
        'gOHM-1285',
        'gOHM-137',
        'gOHM-1666600000',
        'gOHM-25',
        'gOHM-250',
        'gOHM-288',
        'gOHM-43114',
        'gOHM-56',
        'm.USDC-1088',
        'nETH-10',
        'nETH-1088',
        'nETH-1666600000',
        'nETH-250',
        'nETH-288',
        'nETH-43114',
        'nETH-7700',
        'nETH-8453',
        'nUSD-1',
        'nUSD-10',
        'nUSD-1088',
        'nUSD-1313161554',
        'nUSD-137',
        'nUSD-1666600000',
        'nUSD-25',
        'nUSD-250',
        'nUSD-288',
        'nUSD-43114',
        'nUSD-56',
        'nUSD-7700',
        'sUSD-10',
      ].sort()
    )
  })

  it('has toChainId', () => {
    const toTokens = getToTokens({
      fromChainId: null,
      fromTokenRouteSymbol: null,
      toChainId: 8453,
      toTokenRouteSymbol: null,
    })

    expect(toTokens).toEqual([
      'crvUSD-8453',
      'DAI-8453',
      'USDC-8453',
      'axlUSDC-8453',
      'USDbC-8453',
      'ETH-8453',
      'nETH-8453',
      'SYN-8453',
      'UNIDX-8453',
    ])
  })

  it('has toChainId, toToken', () => {
    const toTokens = getToTokens({
      fromChainId: null,
      fromTokenRouteSymbol: null,
      toChainId: 8453,
      toTokenRouteSymbol: 'crvUSD',
    })

    // NOTE: is this right behavior?
    expect(toTokens).toEqual(['crvUSD-8453'])
  })

  it('has fromToken', () => {
    const toTokens = getToTokens({
      fromChainId: null,
      fromTokenRouteSymbol: 'BTC.b',
      toChainId: null,
      toTokenRouteSymbol: null,
    })

    expect(toTokens.sort()).toEqual(
      ['BTC.b-43114', 'BTC.b-53935', 'BTC.b-8217'].sort()
    )
  })

  it('has fromToken, toToken', () => {
    const toTokens = getToTokens({
      fromChainId: null,
      fromTokenRouteSymbol: 'USDC',
      toChainId: null,
      toTokenRouteSymbol: 'crvUSD',
    })

    expect(toTokens.sort()).toEqual(
      [
        'BUSD-56',
        'DAI-1',
        'DAI-10',
        'DAI-137',
        'DAI-2000',
        'DAI-288',
        'DAI-42161',
        'DAI-8217',
        'DAI-8453',
        'DAI.e-43114',
        'FRAX-42161',
        'NOTE-7700',
        'USDC-1',
        'USDC-10',
        'USDC-137',
        'USDC-2000',
        'USDC-25',
        'USDC-288',
        'USDC-42161',
        'USDC-43114',
        'USDC-53935',
        'USDC-56',
        'USDC-7700',
        'USDC-8217',
        'USDC-8453',
        'USDC.e-10',
        'USDC.e-1313161554',
        'USDC.e-42161',
        'USDC.e-43114',
        'USDT-1',
        'USDT-10',
        'USDT-137',
        'USDT-2000',
        'USDT-288',
        'USDT-42161',
        'USDT-43114',
        'USDT-56',
        'USDT-7700',
        'USDT-8217',
        'USDT.e-1313161554',
        'USDT.e-43114',
        'USDbC-8453',
        'axlUSDC-8453',
        'crvUSD-8453',
        'm.USDC-1088',
        'nUSD-1',
        'nUSD-10',
        'nUSD-1088',
        'nUSD-1313161554',
        'nUSD-137',
        'nUSD-1666600000',
        'nUSD-25',
        'nUSD-250',
        'nUSD-288',
        'nUSD-42161',
        'nUSD-43114',
        'nUSD-56',
        'nUSD-7700',
        'sUSD-10',
      ].sort()
    )
  })

  it('has toToken', () => {
    const toTokens = getToTokens({
      fromChainId: null,
      fromTokenRouteSymbol: null,
      toChainId: null,
      toTokenRouteSymbol: 'USDC',
    })

    expect(toTokens.sort()).toEqual([
      'AVAX-1284',
      'AVAX-1666600000',
      'AVAX-43114',
      'AVAX-53935',
      'AVAX-8217',
      'BTC.b-43114',
      'BTC.b-53935',
      'BTC.b-8217',
      'BUSD-56',
      'DAI-1',
      'DAI-10',
      'DAI-137',
      'DAI-2000',
      'DAI-288',
      'DAI-42161',
      'DAI-8217',
      'DAI-8453',
      'DAI.e-43114',
      'DOG-1',
      'DOG-137',
      'DOG-56',
      'ETH-1',
      'ETH-10',
      'ETH-288',
      'ETH-42161',
      'ETH-53935',
      'ETH-7700',
      'ETH-8453',
      'FRAX-1',
      'FRAX-2000',
      'FRAX-42161',
      'FTM-250',
      'FTM-53935',
      'GMX-42161',
      'GMX-43114',
      'H2O-1',
      'H2O-10',
      'H2O-1284',
      'H2O-1285',
      'H2O-137',
      'H2O-42161',
      'H2O-43114',
      'H2O-56',
      'HIGH-1',
      'HIGH-56',
      'JEWEL-1666600000',
      'JEWEL-43114',
      'JEWEL-53935',
      'JEWEL-8217',
      'JUMP-1088',
      'JUMP-250',
      'JUMP-56',
      'KLAY-53935',
      'KLAY-8217',
      'L2DAO-10',
      'L2DAO-42161',
      'LINK-1',
      'LINK-8217',
      'MATIC-137',
      'MATIC-53935',
      'MOVR-1284',
      'MOVR-1285',
      'NEWO-1',
      'NEWO-42161',
      'NEWO-43114',
      'NFD-137',
      'NFD-2000',
      'NFD-43114',
      'NFD-56',
      'NOTE-7700',
      'PEPE-1',
      'PEPE-42161',
      'PLS-10',
      'PLS-42161',
      'SDT-1',
      'SDT-1666600000',
      'SDT-250',
      'SDT-42161',
      'SDT-43114',
      'SFI-1',
      'SFI-43114',
      'SYN-1',
      'SYN-10',
      'SYN-1088',
      'SYN-1284',
      'SYN-1285',
      'SYN-1313161554',
      'SYN-137',
      'SYN-1666600000',
      'SYN-2000',
      'SYN-25',
      'SYN-250',
      'SYN-288',
      'SYN-42161',
      'SYN-43114',
      'SYN-56',
      'SYN-7700',
      'SYN-8453',
      'UNIDX-1',
      'UNIDX-10',
      'UNIDX-250',
      'UNIDX-42161',
      'UNIDX-8453',
      'USDC-1',
      'USDC-10',
      'USDC-137',
      'USDC-2000',
      'USDC-25',
      'USDC-288',
      'USDC-42161',
      'USDC-43114',
      'USDC-53935',
      'USDC-56',
      'USDC-7700',
      'USDC-8217',
      'USDC-8453',
      'USDC.e-10',
      'USDC.e-1313161554',
      'USDC.e-42161',
      'USDC.e-43114',
      'USDT-1',
      'USDT-10',
      'USDT-137',
      'USDT-2000',
      'USDT-288',
      'USDT-42161',
      'USDT-43114',
      'USDT-56',
      'USDT-7700',
      'USDT-8217',
      'USDT.e-1313161554',
      'USDT.e-43114',
      'USDbC-8453',
      'VSTA-1',
      'VSTA-42161',
      'WAVAX-43114',
      'WBTC-1',
      'WBTC-2000',
      'WBTC-8217',
      'WETH-1088',
      'WETH.e-43114',
      'WFTM-250',
      'WJEWEL-53935',
      'WKLAY-8217',
      'WMATIC-137',
      'WMOVR-1285',
      'axlUSDC-8453',
      'crvUSD-8453',
      'gOHM-1',
      'gOHM-10',
      'gOHM-1088',
      'gOHM-1284',
      'gOHM-1285',
      'gOHM-137',
      'gOHM-1666600000',
      'gOHM-25',
      'gOHM-250',
      'gOHM-288',
      'gOHM-42161',
      'gOHM-43114',
      'gOHM-56',
      'm.USDC-1088',
      'nETH-10',
      'nETH-1088',
      'nETH-1666600000',
      'nETH-250',
      'nETH-288',
      'nETH-42161',
      'nETH-43114',
      'nETH-7700',
      'nETH-8453',
      'nUSD-1',
      'nUSD-10',
      'nUSD-1088',
      'nUSD-1313161554',
      'nUSD-137',
      'nUSD-1666600000',
      'nUSD-25',
      'nUSD-250',
      'nUSD-288',
      'nUSD-42161',
      'nUSD-43114',
      'nUSD-56',
      'nUSD-7700',
      'sUSD-10',
      'synFRAX-1284',
      'synFRAX-1285',
      'synFRAX-1666600000',
      'synFRAX-250',
      'synJEWEL-1666600000',
      'veSOLAR-1284',
      'veSOLAR-1285',
      'xJEWEL-1666600000',
      'xJEWEL-53935',
    ])
  })
})