From 8b23a5ef140805900043811c5e2ee339cca5ac61 Mon Sep 17 00:00:00 2001 From: "juraj.bacovcin" Date: Thu, 10 Oct 2024 11:55:32 +0200 Subject: [PATCH] ALL-9108 Refactor and fix some existing tests --- CHANGELOG.md | 1 + src/e2e/e2e.constant.ts | 10 +++ src/e2e/ipfs.spec.ts | 3 +- src/e2e/rpc/evm/eth/tatum.rpc.beacon.spec.ts | 19 +++--- .../rpc/evm/eth/tatum.rpc.ethereum.spec.ts | 14 ++--- src/e2e/rpc/evm/evm.rpc.spec.ts | 5 +- src/e2e/rpc/other/tatum.rpc.eos.spec.ts | 4 +- src/e2e/rpc/other/tatum.rpc.stellar.spec.ts | 6 +- src/e2e/rpc/other/tatum.rpc.tron.spec.ts | 9 ++- src/e2e/tatum.rates.spec.ts | 3 +- src/e2e/tatum.spec.ts | 61 ++++++++++--------- 11 files changed, 78 insertions(+), 57 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 833191f092..916f96af68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### Fixed - Fixed Tatum Connector issue with process is undefined on the pure browser +- Fixed and refactored some tests ## [4.2.42] - 2024.9.4 diff --git a/src/e2e/e2e.constant.ts b/src/e2e/e2e.constant.ts index 0a31870641..415f0cf667 100644 --- a/src/e2e/e2e.constant.ts +++ b/src/e2e/e2e.constant.ts @@ -1,5 +1,15 @@ import { Network } from '../dto' +export const ApiKey = { + mainnet: process.env.V4_API_KEY_MAINNET || '', + testnet: process.env.V4_API_KEY_TESTNET || '', +} + +export const ApiKeyV3 = { + mainnet: process.env.V3_API_KEY_MAINNET || '', + testnet: process.env.V3_API_KEY_TESTNET || '', +} + export const TestConst = { EXISTING_SUBSCRIPTION_ETH_ADDRESS: '0xbaf6dc2e647aeb6f510f9e318856a1bcd66c5e19', INVALID_ETH_ADDRESS: 'TLduuX5NWFucPPafLbj9eab6Znwrdm72Qv', diff --git a/src/e2e/ipfs.spec.ts b/src/e2e/ipfs.spec.ts index db15c38128..00fa6ad8d5 100644 --- a/src/e2e/ipfs.spec.ts +++ b/src/e2e/ipfs.spec.ts @@ -1,10 +1,11 @@ import fs from 'fs' import { Network } from '../dto' +import { ApiKey } from './e2e.constant' import { EvmE2eUtils } from './rpc/evm/evm.e2e.utils' describe.skip('IPFS', () => { it('should upload file to IPFS', async () => { - const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, process.env.V4_API_KEY_MAINNET) + const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, ApiKey.mainnet) const fileData = fs.readFileSync('./test.txt') // Adjust the path to your file const response = await tatum.ipfs.uploadFile({ file: fileData }) expect(response.status).toBe('SUCCESS') diff --git a/src/e2e/rpc/evm/eth/tatum.rpc.beacon.spec.ts b/src/e2e/rpc/evm/eth/tatum.rpc.beacon.spec.ts index 5f54d23e59..294be8d0aa 100644 --- a/src/e2e/rpc/evm/eth/tatum.rpc.beacon.spec.ts +++ b/src/e2e/rpc/evm/eth/tatum.rpc.beacon.spec.ts @@ -1,5 +1,6 @@ import { Network } from '../../../../dto' import { Ethereum } from '../../../../service' +import { ApiKey } from '../../../e2e.constant' import { EvmE2eUtils } from '../evm.e2e.utils' describe('Beacon', () => { @@ -8,63 +9,63 @@ describe('Beacon', () => { describe.each(networks)('%s', (network) => { it('should get node version', async () => { - const tatum = await EvmE2eUtils.initTatum(network, process.env.V4_API_KEY_TESTNET) + const tatum = await EvmE2eUtils.initTatum(network, ApiKey.testnet) const { data } = await tatum.rpc.beacon.v1.getNodeVersion() await tatum.destroy() expect(data).toBeDefined() }) it('should get genesis', async () => { - const tatum = await EvmE2eUtils.initTatum(network, process.env.V4_API_KEY_TESTNET) + const tatum = await EvmE2eUtils.initTatum(network, ApiKey.testnet) const { data } = await tatum.rpc.beacon.v1.getGenesis() await tatum.destroy() expect(data).toBeDefined() }) it('should get state root', async () => { - const tatum = await EvmE2eUtils.initTatum(network, process.env.V4_API_KEY_TESTNET) + const tatum = await EvmE2eUtils.initTatum(network, ApiKey.testnet) const { data } = await tatum.rpc.beacon.v1.getStateRoot({ stateId: 'head' }) await tatum.destroy() expect(data).toBeDefined() }) it('should get block headers', async () => { - const tatum = await EvmE2eUtils.initTatum(network, process.env.V4_API_KEY_TESTNET) + const tatum = await EvmE2eUtils.initTatum(network, ApiKey.testnet) const { data } = await tatum.rpc.beacon.v1.getBlockHeaders({ slot: '1000' }) await tatum.destroy() expect(data).toBeDefined() }) it('should get block root', async () => { - const tatum = await EvmE2eUtils.initTatum(network, process.env.V4_API_KEY_TESTNET) + const tatum = await EvmE2eUtils.initTatum(network, ApiKey.testnet) const { data } = await tatum.rpc.beacon.v1.getBlockRoot({ blockId: 'head' }) await tatum.destroy() expect(data).toBeDefined() }) it('should get state committees', async () => { - const tatum = await EvmE2eUtils.initTatum(network, process.env.V4_API_KEY_TESTNET) + const tatum = await EvmE2eUtils.initTatum(network, ApiKey.testnet) const { data } = await tatum.rpc.beacon.v1.getStateCommittees({ stateId: 'head' }) await tatum.destroy() expect(data).toBeDefined() }) it('should get state finality checkpoints', async () => { - const tatum = await EvmE2eUtils.initTatum(network, process.env.V4_API_KEY_TESTNET) + const tatum = await EvmE2eUtils.initTatum(network, ApiKey.testnet) const { data } = await tatum.rpc.beacon.v1.getStateFinalityCheckpoints({ stateId: 'head' }) await tatum.destroy() expect(data).toBeDefined() }) it('should get state fork', async () => { - const tatum = await EvmE2eUtils.initTatum(network, process.env.V4_API_KEY_TESTNET) + const tatum = await EvmE2eUtils.initTatum(network, ApiKey.testnet) const { data } = await tatum.rpc.beacon.v1.getStateFork({ stateId: 'head' }) await tatum.destroy() expect(data).toBeDefined() }) it('should get state sync committees', async () => { - const tatum = await EvmE2eUtils.initTatum(network, process.env.V4_API_KEY_TESTNET) + const tatum = await EvmE2eUtils.initTatum(network, ApiKey.testnet) const { data } = await tatum.rpc.beacon.v1.getStateSyncCommittees({ stateId: 'head' }) await tatum.destroy() expect(data).toBeDefined() diff --git a/src/e2e/rpc/evm/eth/tatum.rpc.ethereum.spec.ts b/src/e2e/rpc/evm/eth/tatum.rpc.ethereum.spec.ts index 38ab8a5a69..d22e539534 100644 --- a/src/e2e/rpc/evm/eth/tatum.rpc.ethereum.spec.ts +++ b/src/e2e/rpc/evm/eth/tatum.rpc.ethereum.spec.ts @@ -1,10 +1,10 @@ -import process from 'process' import { BaseEvm, Network, RpcNodeType, TatumSDK } from '../../../../service' +import { ApiKey } from '../../../e2e.constant' import { EvmE2eUtils } from '../evm.e2e.utils' describe('Ethereum', () => { it('should get token total supply', async () => { - const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, process.env.V4_API_KEY_MAINNET) + const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, ApiKey.mainnet) const { result } = await tatum.rpc.getTokenTotalSupply('0xdac17f958d2ee523a2206206994597c13d831ec7') await tatum.destroy() expect(result).toBeDefined() @@ -12,7 +12,7 @@ describe('Ethereum', () => { }) it('should get token cap', async () => { - const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, process.env.V4_API_KEY_MAINNET) + const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, ApiKey.mainnet) const { result } = await tatum.rpc.getTokenCap('0x43044f861ec040DB59A7e324c40507adDb673142') await tatum.destroy() expect(result).toBeDefined() @@ -20,7 +20,7 @@ describe('Ethereum', () => { }) it('should return true if contract is a multitoken', async () => { - const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, process.env.V4_API_KEY_MAINNET) + const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, ApiKey.mainnet) const { result } = await tatum.rpc.supportsInterfaceERC1155('0xF4Dd946D1406e215a87029db56C69e1Bcf3e1773') await tatum.destroy() expect(result).toBeDefined() @@ -39,7 +39,7 @@ describe('Ethereum', () => { ], }, apiKey: { - v4: process.env.V4_API_KEY_MAINNET, + v4: ApiKey.mainnet, }, }) const { result } = await tatum.rpc.chainId() @@ -48,7 +48,7 @@ describe('Ethereum', () => { }) it('debug storage range at', async () => { - const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, process.env.V4_API_KEY_MAINNET) + const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, ApiKey.mainnet) const { result } = await tatum.rpc.debugStorageRangeAt( '0xc20f6b582e0c7923341cdb1299a94ea00c8a23e1ccabc532955a2a07b27121dc', 0, @@ -61,7 +61,7 @@ describe('Ethereum', () => { }) it('get logs', async () => { - const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, process.env.V4_API_KEY_MAINNET) + const tatum = await EvmE2eUtils.initTatum(Network.ETHEREUM, ApiKey.mainnet) const result = await tatum.rpc.getLogs({ address: '0xdafea492d9c6733ae3d56b7ed1adb60692c98bc5', }) diff --git a/src/e2e/rpc/evm/evm.rpc.spec.ts b/src/e2e/rpc/evm/evm.rpc.spec.ts index 328898cb94..7a1f07bb2e 100644 --- a/src/e2e/rpc/evm/evm.rpc.spec.ts +++ b/src/e2e/rpc/evm/evm.rpc.spec.ts @@ -1,11 +1,12 @@ import { Network } from '../../../dto' +import { ApiKey, ApiKeyV3 } from '../../e2e.constant' import { EvmE2eUtils } from './evm.e2e.utils' const testNetworks = [ { network: Network.CELO }, { network: Network.CELO_ALFAJORES }, // { network: Network.ARBITRUM_ONE }, - { network: Network.ARBITRUM_NOVA, apiKey: process.env.V3_API_KEY_MAINNET }, + { network: Network.ARBITRUM_NOVA, apiKey: ApiKeyV3.mainnet }, { network: Network.ARBITRUM_NOVA_TESTNET, apiKey: process.env.V3_API_KEY_TESTNET, @@ -56,7 +57,7 @@ const testNetworks = [ }, { network: Network.KLAYTN_BAOBAB, - apiKey: process.env.V4_API_KEY_TESTNET, + apiKey: ApiKey.testnet, }, { network: Network.AVALANCHE_C, diff --git a/src/e2e/rpc/other/tatum.rpc.eos.spec.ts b/src/e2e/rpc/other/tatum.rpc.eos.spec.ts index 9a51f61ad7..6a812240c2 100644 --- a/src/e2e/rpc/other/tatum.rpc.eos.spec.ts +++ b/src/e2e/rpc/other/tatum.rpc.eos.spec.ts @@ -1,12 +1,12 @@ -import * as process from 'process' import { ApiVersion, Eos, Network, TatumSDK } from '../../../service' +import { ApiKey, ApiKeyV3 } from '../../e2e.constant' import { e2eUtil } from '../../e2e.util' const getEosRpc = async (testnet?: boolean) => await TatumSDK.init({ network: testnet ? Network.EOS_TESTNET : Network.EOS, apiKey: { - v4: testnet ? process.env.V3_API_KEY_TESTNET : process.env.V4_API_KEY_MAINNET, + v4: testnet ? ApiKeyV3.testnet : ApiKey.mainnet, }, version: ApiVersion.V3, retryCount: 1, diff --git a/src/e2e/rpc/other/tatum.rpc.stellar.spec.ts b/src/e2e/rpc/other/tatum.rpc.stellar.spec.ts index 8ba77d0735..a76024e9ac 100644 --- a/src/e2e/rpc/other/tatum.rpc.stellar.spec.ts +++ b/src/e2e/rpc/other/tatum.rpc.stellar.spec.ts @@ -1,13 +1,13 @@ -import process from 'process' import { ApiVersion, Network, Stellar, TatumSDK } from '../../../service' +import { ApiKey, ApiKeyV3 } from '../../e2e.constant' import { e2eUtil } from '../../e2e.util' const getStellarRpc = async (testnet?: boolean) => await TatumSDK.init({ network: testnet ? Network.STELLAR_TESTNET : Network.STELLAR, verbose: e2eUtil.isVerbose, - ...(testnet && { apiKey: { v3: process.env.V3_API_KEY_TESTNET } }), - ...(!testnet && { apiKey: process.env.V4_API_KEY_MAINNET }), + ...(testnet && { apiKey: { v3: ApiKeyV3.testnet } }), + ...(!testnet && { apiKey: ApiKey.mainnet }), version: testnet ? ApiVersion.V3 : ApiVersion.V4, }) diff --git a/src/e2e/rpc/other/tatum.rpc.tron.spec.ts b/src/e2e/rpc/other/tatum.rpc.tron.spec.ts index 9af25dcabe..1f171b77fe 100644 --- a/src/e2e/rpc/other/tatum.rpc.tron.spec.ts +++ b/src/e2e/rpc/other/tatum.rpc.tron.spec.ts @@ -1,11 +1,16 @@ import BigNumber from 'bignumber.js' -import * as process from 'process' import { BlockIdentifier } from '../../../dto' import { Network, TatumSDK, Tron } from '../../../service' +import { ApiKey, ApiKeyV3 } from '../../e2e.constant' import { e2eUtil } from '../../e2e.util' const getTronRpc = async (testnet?: boolean) => - await TatumSDK.init(e2eUtil.initConfig(testnet ? Network.TRON_SHASTA : Network.TRON, testnet ? process.env.V3_API_KEY_TESTNET : process.env.V4_API_KEY_MAINNET)) + await TatumSDK.init( + e2eUtil.initConfig( + testnet ? Network.TRON_SHASTA : Network.TRON, + testnet ? ApiKeyV3.testnet : ApiKey.mainnet, + ), + ) describe.skip('RPCs', () => { describe('TRON', () => { diff --git a/src/e2e/tatum.rates.spec.ts b/src/e2e/tatum.rates.spec.ts index bbd3dbb32b..a34a5c8179 100644 --- a/src/e2e/tatum.rates.spec.ts +++ b/src/e2e/tatum.rates.spec.ts @@ -1,4 +1,5 @@ import { ApiVersion, Ethereum, Network, TatumSDK } from '../service' +import { ApiKey } from './e2e.constant' describe('Rates', () => { let tatum: Ethereum @@ -9,7 +10,7 @@ describe('Rates', () => { retryDelay: 1000, retryCount: 2, version: ApiVersion.V4, - apiKey: process.env.V4_API_KEY_TESTNET, + apiKey: ApiKey.testnet, }) }) diff --git a/src/e2e/tatum.spec.ts b/src/e2e/tatum.spec.ts index ef6938dbfc..d7991a9ef4 100644 --- a/src/e2e/tatum.spec.ts +++ b/src/e2e/tatum.spec.ts @@ -1,44 +1,45 @@ import { Network } from '../dto' import { Bitcoin, TatumSDK } from '../service' +import { ApiKey } from './e2e.constant' describe('Tatum Init', () => { - describe('IP auth', () => { - it('Testnet', async () => { - const tatum = await TatumSDK.init({ - network: Network.BITCOIN_TESTNET, - }) - const { result } = await tatum.rpc.getBlockChainInfo() - expect(result.chain).toBe('test') - await tatum.destroy() + it('Testnet', async () => { + const tatum = await TatumSDK.init({ + network: Network.BITCOIN_TESTNET, + apiKey: ApiKey.testnet, }) + const { result } = await tatum.rpc.getBlockChainInfo() + expect(result.chain).toBe('test') + await tatum.destroy() + }) - it('Mainnet', async () => { - const tatum = await TatumSDK.init({ - network: Network.BITCOIN, - }) - const { result } = await tatum.rpc.getBlockChainInfo() - expect(result.chain).toBe('main') - await tatum.destroy() + it('Mainnet', async () => { + const tatum = await TatumSDK.init({ + network: Network.BITCOIN, + apiKey: ApiKey.mainnet, }) + const { result } = await tatum.rpc.getBlockChainInfo() + expect(result.chain).toBe('main') + await tatum.destroy() }) - describe('Multiple Instances', () => { - it('IP auth', async () => { - const mainnet = await TatumSDK.init({ - network: Network.BITCOIN, - }) - const testnet = await TatumSDK.init({ - network: Network.BITCOIN_TESTNET, - }) + it('Multiple Instances', async () => { + const mainnet = await TatumSDK.init({ + network: Network.BITCOIN, + apiKey: ApiKey.mainnet, + }) + const testnet = await TatumSDK.init({ + network: Network.BITCOIN_TESTNET, + apiKey: ApiKey.testnet, + }) - const { result: resultMainnet } = await mainnet.rpc.getBlockChainInfo() - expect(resultMainnet.chain).toBe('main') + const { result: resultMainnet } = await mainnet.rpc.getBlockChainInfo() + expect(resultMainnet.chain).toBe('main') - const { result: resultTestnet } = await testnet.rpc.getBlockChainInfo() - expect(resultTestnet.chain).toBe('test') + const { result: resultTestnet } = await testnet.rpc.getBlockChainInfo() + expect(resultTestnet.chain).toBe('test') - await testnet.destroy() - await mainnet.destroy() - }) + await testnet.destroy() + await mainnet.destroy() }) })