From 02102eb47f7f931ba5273651b4cfaaf318b29438 Mon Sep 17 00:00:00 2001 From: mariacarmina Date: Mon, 3 Feb 2025 14:45:54 +0200 Subject: [PATCH 1/7] Use blockchain class for signer address. --- src/test/unit/indexer/validation.test.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/test/unit/indexer/validation.test.ts b/src/test/unit/indexer/validation.test.ts index dda552f0b..36b0c18f9 100644 --- a/src/test/unit/indexer/validation.test.ts +++ b/src/test/unit/indexer/validation.test.ts @@ -3,7 +3,7 @@ import { getValidationSignature, validateObject } from '../../../components/core/utils/validateDdoHandler.js' -import { ENVIRONMENT_VARIABLES } from '../../../utils/index.js' +import { Blockchain, ENVIRONMENT_VARIABLES } from '../../../utils/index.js' import { expect } from 'chai' import { @@ -15,6 +15,7 @@ import { describe('Schema validation tests', async () => { let envOverrides: OverrideEnvConfig[] + const blockchain = new Blockchain('http://172.0.0.1:8545', 'development', 8996) envOverrides = buildEnvOverrideConfig( [ ENVIRONMENT_VARIABLES.PRIVATE_KEY, @@ -23,10 +24,10 @@ describe('Schema validation tests', async () => { ENVIRONMENT_VARIABLES.RPCS ], [ - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', + blockchain.getSigner(), 'https://ipfs.io/', 'https://arweave.net/', - '{ "1": "https://rpc.eth.gateway.fm", "137": "https://polygon.meowrpc.com" }' + '{ "8996": "http://172.0.0.1:8545" }' ] ) envOverrides = await setupEnvironment(null, envOverrides) From 5dc6aa377947b05eb41144945511d1633b3e0158 Mon Sep 17 00:00:00 2001 From: mariacarmina Date: Mon, 3 Feb 2025 22:18:28 +0200 Subject: [PATCH 2/7] Remove private keys from unit tests. --- src/test/unit/download.test.ts | 14 ++------------ src/test/unit/indexer/validation.test.ts | 11 ++--------- src/test/unit/ocean.test.ts | 2 -- 3 files changed, 4 insertions(+), 23 deletions(-) diff --git a/src/test/unit/download.test.ts b/src/test/unit/download.test.ts index 49cfd178f..380d1384e 100644 --- a/src/test/unit/download.test.ts +++ b/src/test/unit/download.test.ts @@ -3,17 +3,12 @@ import { OceanNode } from '../../OceanNode.js' import { Database } from '../../components/database/index.js' import { getConfiguration } from '../../utils/config.js' import { EncryptHandler } from '../../components/core/handler/encryptHandler.js' -import { ENVIRONMENT_VARIABLES, PROTOCOL_COMMANDS } from '../../utils/constants.js' +import { PROTOCOL_COMMANDS } from '../../utils/constants.js' import { EncryptMethod } from '../../@types/fileObject.js' import { OceanNodeConfig } from '../../@types/OceanNode.js' import { Readable } from 'stream' import { streamToString } from '../../utils/util.js' -import { - OverrideEnvConfig, - buildEnvOverrideConfig, - setupEnvironment, - tearDownEnvironment -} from '../utils/utils.js' +import { OverrideEnvConfig, tearDownEnvironment } from '../utils/utils.js' import { decrypt } from '../../utils/crypt.js' import { validateFilesStructure } from '../../components/core/handler/downloadHandler.js' import { AssetUtils, isConfidentialChainDDO } from '../../utils/asset.js' @@ -28,11 +23,6 @@ let oceanNode: OceanNode describe('Should validate files structure for download', () => { before(async () => { - envOverrides = buildEnvOverrideConfig( - [ENVIRONMENT_VARIABLES.PRIVATE_KEY], - ['0x3634cc4a3d2694a1186a7ce545f149e022eea103cc254d18d08675104bb4b5ac'] - ) - envOverrides = await setupEnvironment(null, envOverrides) config = await getConfiguration(true) db = await new Database(config.dbConfig) oceanNode = OceanNode.getInstance(db) diff --git a/src/test/unit/indexer/validation.test.ts b/src/test/unit/indexer/validation.test.ts index 36b0c18f9..f9f9687e9 100644 --- a/src/test/unit/indexer/validation.test.ts +++ b/src/test/unit/indexer/validation.test.ts @@ -3,7 +3,7 @@ import { getValidationSignature, validateObject } from '../../../components/core/utils/validateDdoHandler.js' -import { Blockchain, ENVIRONMENT_VARIABLES } from '../../../utils/index.js' +import { ENVIRONMENT_VARIABLES } from '../../../utils/index.js' import { expect } from 'chai' import { @@ -15,20 +15,13 @@ import { describe('Schema validation tests', async () => { let envOverrides: OverrideEnvConfig[] - const blockchain = new Blockchain('http://172.0.0.1:8545', 'development', 8996) envOverrides = buildEnvOverrideConfig( [ - ENVIRONMENT_VARIABLES.PRIVATE_KEY, ENVIRONMENT_VARIABLES.IPFS_GATEWAY, ENVIRONMENT_VARIABLES.ARWEAVE_GATEWAY, ENVIRONMENT_VARIABLES.RPCS ], - [ - blockchain.getSigner(), - 'https://ipfs.io/', - 'https://arweave.net/', - '{ "8996": "http://172.0.0.1:8545" }' - ] + ['https://ipfs.io/', 'https://arweave.net/', '{ "8996": "http://172.0.0.1:8545" }'] ) envOverrides = await setupEnvironment(null, envOverrides) diff --git a/src/test/unit/ocean.test.ts b/src/test/unit/ocean.test.ts index 3da38e0be..3dedbedce 100644 --- a/src/test/unit/ocean.test.ts +++ b/src/test/unit/ocean.test.ts @@ -19,14 +19,12 @@ describe('Status command tests', async () => { // need to do it first envOverrides = buildEnvOverrideConfig( [ - ENVIRONMENT_VARIABLES.PRIVATE_KEY, ENVIRONMENT_VARIABLES.IPFS_GATEWAY, ENVIRONMENT_VARIABLES.ARWEAVE_GATEWAY, ENVIRONMENT_VARIABLES.RPCS, ENVIRONMENT_VARIABLES.INDEXER_NETWORKS ], [ - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', 'https://ipfs.io/', 'https://arweave.net/', '{ "1": "https://rpc.eth.gateway.fm", "137": "https://polygon.meowrpc.com" }', From d961f00cd28b67d1228c8a1306630cffc5e1364b Mon Sep 17 00:00:00 2001 From: mariacarmina Date: Tue, 4 Feb 2025 21:25:14 +0200 Subject: [PATCH 3/7] Use .env.test. Removed unnecessary overriden envs. --- src/test/unit/blockchain.test.ts | 18 ++------------- src/test/unit/download.test.ts | 6 ----- src/test/unit/indexer/validation.test.ts | 28 ++++-------------------- src/test/unit/ocean.test.ts | 12 +++------- src/test/unit/oceanP2P.test.ts | 27 ++--------------------- 5 files changed, 11 insertions(+), 80 deletions(-) diff --git a/src/test/unit/blockchain.test.ts b/src/test/unit/blockchain.test.ts index 978c1fe1b..cde1d1de8 100644 --- a/src/test/unit/blockchain.test.ts +++ b/src/test/unit/blockchain.test.ts @@ -3,32 +3,22 @@ import { OceanNodeConfig } from '../../@types/OceanNode.js' import { RPCS, SupportedNetwork } from '../../@types/blockchain.js' import { Blockchain } from '../../utils/blockchain.js' import { getConfiguration } from '../../utils/config.js' -import { ENVIRONMENT_VARIABLES } from '../../utils/constants.js' import { DEFAULT_TEST_TIMEOUT, - OverrideEnvConfig, - buildEnvOverrideConfig, setupEnvironment, - tearDownEnvironment + TEST_ENV_CONFIG_FILE } from '../utils/utils.js' import { expectedTimeoutFailure } from '../integration/testUtils.js' import { DEVELOPMENT_CHAIN_ID, KNOWN_CONFIDENTIAL_EVMS } from '../../utils/address.js' import { isConfidentialEVM } from '../../utils/asset.js' -let envOverrides: OverrideEnvConfig[] let config: OceanNodeConfig let rpcs: RPCS let network: SupportedNetwork let blockchain: Blockchain describe('Should validate blockchain network connections', () => { before(async () => { - envOverrides = buildEnvOverrideConfig( - [ENVIRONMENT_VARIABLES.RPCS], - [ - '{ "8996":{ "rpc":"http://172.0.0.1:8545", "fallbackRPCs": ["http://172.0.0.3:8545","http://127.0.0.1:8545"], "chainId": 8996, "network": "development", "chunkSize": 100 }}' - ] - ) - envOverrides = await setupEnvironment(null, envOverrides) + setupEnvironment(TEST_ENV_CONFIG_FILE) config = await getConfiguration(true) rpcs = config.supportedNetworks @@ -78,8 +68,4 @@ describe('Should validate blockchain network connections', () => { } expect(isConfidentialEVM(DEVELOPMENT_CHAIN_ID)).to.be.equal(false) }) - - after(async () => { - await tearDownEnvironment(envOverrides) - }) }) diff --git a/src/test/unit/download.test.ts b/src/test/unit/download.test.ts index 380d1384e..6a30ae4bb 100644 --- a/src/test/unit/download.test.ts +++ b/src/test/unit/download.test.ts @@ -8,7 +8,6 @@ import { EncryptMethod } from '../../@types/fileObject.js' import { OceanNodeConfig } from '../../@types/OceanNode.js' import { Readable } from 'stream' import { streamToString } from '../../utils/util.js' -import { OverrideEnvConfig, tearDownEnvironment } from '../utils/utils.js' import { decrypt } from '../../utils/crypt.js' import { validateFilesStructure } from '../../components/core/handler/downloadHandler.js' import { AssetUtils, isConfidentialChainDDO } from '../../utils/asset.js' @@ -16,7 +15,6 @@ import { DDO } from '../../@types/DDO/DDO.js' import { Service } from '../../@types/DDO/Service.js' import { DEVELOPMENT_CHAIN_ID, KNOWN_CONFIDENTIAL_EVMS } from '../../utils/address.js' -let envOverrides: OverrideEnvConfig[] let config: OceanNodeConfig let db: Database let oceanNode: OceanNode @@ -161,8 +159,4 @@ describe('Should validate files structure for download', () => { isConfidentialChainDDO(DEVELOPMENT_CHAIN_ID, otherDDOConfidential.services[0]) ).to.be.equal(false) }) - - after(async () => { - await tearDownEnvironment(envOverrides) - }) }) diff --git a/src/test/unit/indexer/validation.test.ts b/src/test/unit/indexer/validation.test.ts index f9f9687e9..9756a3ffb 100644 --- a/src/test/unit/indexer/validation.test.ts +++ b/src/test/unit/indexer/validation.test.ts @@ -3,33 +3,13 @@ import { getValidationSignature, validateObject } from '../../../components/core/utils/validateDdoHandler.js' -import { ENVIRONMENT_VARIABLES } from '../../../utils/index.js' - +import { TEST_ENV_CONFIG_FILE, setupEnvironment } from '../../utils/utils.js' import { expect } from 'chai' -import { - setupEnvironment, - tearDownEnvironment, - buildEnvOverrideConfig, - OverrideEnvConfig -} from '../../utils/utils.js' -describe('Schema validation tests', async () => { - let envOverrides: OverrideEnvConfig[] - envOverrides = buildEnvOverrideConfig( - [ - ENVIRONMENT_VARIABLES.IPFS_GATEWAY, - ENVIRONMENT_VARIABLES.ARWEAVE_GATEWAY, - ENVIRONMENT_VARIABLES.RPCS - ], - ['https://ipfs.io/', 'https://arweave.net/', '{ "8996": "http://172.0.0.1:8545" }'] - ) - envOverrides = await setupEnvironment(null, envOverrides) - - after(() => { - // Restore original local setup / env variables after test - tearDownEnvironment(envOverrides) +describe('Schema validation tests', () => { + before(() => { + setupEnvironment(TEST_ENV_CONFIG_FILE) }) - it('should pass the validation on version 4.1.0', async () => { const validationResult = await validateObject(DDOExample, 137, DDOExample.nftAddress) expect(validationResult[0]).to.eql(true) diff --git a/src/test/unit/ocean.test.ts b/src/test/unit/ocean.test.ts index 3dedbedce..ad696dccf 100644 --- a/src/test/unit/ocean.test.ts +++ b/src/test/unit/ocean.test.ts @@ -8,6 +8,7 @@ import { ENVIRONMENT_VARIABLES, getConfiguration } from '../../utils/index.js' import { expect } from 'chai' import { OverrideEnvConfig, + TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig, setupEnvironment, tearDownEnvironment @@ -18,20 +19,13 @@ let envOverrides: OverrideEnvConfig[] describe('Status command tests', async () => { // need to do it first envOverrides = buildEnvOverrideConfig( + [ENVIRONMENT_VARIABLES.RPCS, ENVIRONMENT_VARIABLES.INDEXER_NETWORKS], [ - ENVIRONMENT_VARIABLES.IPFS_GATEWAY, - ENVIRONMENT_VARIABLES.ARWEAVE_GATEWAY, - ENVIRONMENT_VARIABLES.RPCS, - ENVIRONMENT_VARIABLES.INDEXER_NETWORKS - ], - [ - 'https://ipfs.io/', - 'https://arweave.net/', '{ "1": "https://rpc.eth.gateway.fm", "137": "https://polygon.meowrpc.com" }', JSON.stringify([1, 137]) ] ) - envOverrides = await setupEnvironment(null, envOverrides) + envOverrides = await setupEnvironment(TEST_ENV_CONFIG_FILE, envOverrides) // because of this const config = await getConfiguration(true) const db = await new Database(config.dbConfig) diff --git a/src/test/unit/oceanP2P.test.ts b/src/test/unit/oceanP2P.test.ts index 7eff298fa..24fa77d79 100644 --- a/src/test/unit/oceanP2P.test.ts +++ b/src/test/unit/oceanP2P.test.ts @@ -2,13 +2,7 @@ import { assert } from 'chai' import { getConfiguration } from '../../utils/config.js' import { OceanP2P } from '../../components/P2P/index.js' import { delay } from '../integration/testUtils.js' -import { ENVIRONMENT_VARIABLES } from '../../utils/constants.js' -import { - TEST_ENV_CONFIG_FILE, - buildEnvOverrideConfig, - setupEnvironment, - tearDownEnvironment -} from '../utils/utils.js' +import { TEST_ENV_CONFIG_FILE, setupEnvironment } from '../utils/utils.js' describe('OceanP2P Test', () => { let node1: OceanP2P @@ -16,21 +10,8 @@ describe('OceanP2P Test', () => { let config1: any let config2: any const mDNSInterval: number = 1 - - const envOverrides = buildEnvOverrideConfig( - [ - ENVIRONMENT_VARIABLES.PRIVATE_KEY, - ENVIRONMENT_VARIABLES.NODE1_PRIVATE_KEY, - ENVIRONMENT_VARIABLES.NODE2_PRIVATE_KEY - ], - [ - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', - '0xcb345bd2b11264d523ddaf383094e2675c420a17511c3102a53817f13474a7ff', - '0x3634cc4a3d2694a1186a7ce545f149e022eea103cc254d18d08675104bb4b5ac' - ] - ) before(() => { - setupEnvironment(TEST_ENV_CONFIG_FILE, envOverrides) + setupEnvironment(TEST_ENV_CONFIG_FILE) }) it('Start instance of OceanP2P node1', async () => { @@ -98,10 +79,6 @@ describe('OceanP2P Test', () => { 'Node1 not found in node2 peer list' ) }) - - after(() => { - tearDownEnvironment(envOverrides) - }) }) describe('OceanP2P Test without DB_URL set', () => { From 4ed5c8c315565e039ca1cc123f77012f15cf4750 Mon Sep 17 00:00:00 2001 From: mariacarmina Date: Tue, 4 Feb 2025 22:09:28 +0200 Subject: [PATCH 4/7] Fix for integration tests. --- src/test/.env.test | 3 +- src/test/integration/compute.test.ts | 29 ++++++-------- src/test/integration/credentials.test.ts | 33 +++++++-------- src/test/integration/download.test.ts | 30 +++++++------- .../integration/encryptDecryptDDO.test.ts | 40 +++++++------------ src/test/integration/encryptFile.test.ts | 11 +---- src/test/integration/indexer.test.ts | 33 +++++++-------- .../integration/operationsDashboard.test.ts | 37 ++++++++--------- .../integration/transactionValidation.test.ts | 31 +++++++------- src/test/unit/blockchain.test.ts | 16 +++++++- 10 files changed, 121 insertions(+), 142 deletions(-) diff --git a/src/test/.env.test b/src/test/.env.test index 4a2079fcc..74162ec50 100644 --- a/src/test/.env.test +++ b/src/test/.env.test @@ -9,6 +9,7 @@ ARWEAVE_GATEWAY=https://arweave.net/ NODE1_PRIVATE_KEY=0xcb345bd2b11264d523ddaf383094e2675c420a17511c3102a53817f13474a7ff NODE2_PRIVATE_KEY=0x3634cc4a3d2694a1186a7ce545f149e022eea103cc254d18d08675104bb4b5ac INDEXER_INTERVAL=9000 -#ADDRESS_FILE=${HOME}/.ocean/ocean-contracts/artifacts/address.json +ADDRESS_FILE=${HOME}/.ocean/ocean-contracts/artifacts/address.json LOG_LEVEL=debug DB_TYPE=elasticsearch +ANOTHER_WALLET_PRIVATE_KEY='0xef4b441145c1d0f3b4bc6d61d29f5c6e502359481152f869247c7a4244d45209' \ No newline at end of file diff --git a/src/test/integration/compute.test.ts b/src/test/integration/compute.test.ts index 395fd9900..d16c818ef 100644 --- a/src/test/integration/compute.test.ts +++ b/src/test/integration/compute.test.ts @@ -18,6 +18,7 @@ import type { ComputeEnvironment } from '../../@types/C2D.js' import { + Blockchain, // DB_TYPES, ENVIRONMENT_VARIABLES, EVENTS, @@ -42,13 +43,11 @@ import { } from 'ethers' import { publishAsset, orderAsset } from '../utils/assets.js' import { computeAsset, algoAsset } from '../data/assets.js' -import { RPCS } from '../../@types/blockchain.js' import { DEFAULT_TEST_TIMEOUT, OverrideEnvConfig, TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig, - getMockSupportedNetworks, setupEnvironment, tearDownEnvironment } from '../utils/utils.js' @@ -73,7 +72,6 @@ describe('Compute', () => { let config: OceanNodeConfig let dbconn: Database let oceanNode: OceanNode - let provider: any let publisherAccount: any let consumerAccount: any let computeEnvironments: any @@ -85,15 +83,12 @@ describe('Compute', () => { let providerFeesComputeDataset: ProviderFees let providerFeesComputeAlgo: ProviderFees let indexer: OceanIndexer + let blockchain: Blockchain const now = new Date().getTime() / 1000 const computeJobValidUntil = now + 60 * 15 // 15 minutes from now should be enough let firstEnv: ComputeEnvironment - const wallet = new ethers.Wallet( - '0xef4b441145c1d0f3b4bc6d61d29f5c6e502359481152f869247c7a4244d45209' - ) - // const chainId = DEVELOPMENT_CHAIN_ID - const mockSupportedNetworks: RPCS = getMockSupportedNetworks() + let wallet: ethers.Wallet const chainId = 8996 // randomly use a set of trusted algos or empty arrays // should validate if set and match, invalidate otherwise @@ -109,9 +104,6 @@ describe('Compute', () => { TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig( [ - ENVIRONMENT_VARIABLES.RPCS, - ENVIRONMENT_VARIABLES.INDEXER_NETWORKS, - ENVIRONMENT_VARIABLES.PRIVATE_KEY, ENVIRONMENT_VARIABLES.AUTHORIZED_DECRYPTERS, ENVIRONMENT_VARIABLES.ADDRESS_FILE, ENVIRONMENT_VARIABLES.OPERATOR_SERVICE_URL @@ -119,9 +111,6 @@ describe('Compute', () => { // ENVIRONMENT_VARIABLES.DB_TYPE ], [ - JSON.stringify(mockSupportedNetworks), - JSON.stringify([8996]), - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), `${homedir}/.ocean/ocean-contracts/artifacts/address.json`, JSON.stringify(['http://localhost:31000']) @@ -130,6 +119,9 @@ describe('Compute', () => { ] ) ) + const rpc: string = 'http://127.0.0.1:8545' + const provider = new JsonRpcProvider(rpc) + wallet = new ethers.Wallet(process.env.ANOTHER_WALLET_PRIVATE_KEY, provider) config = await getConfiguration(true) dbconn = await new Database(config.dbConfig) oceanNode = await OceanNode.getInstance(dbconn) @@ -137,9 +129,12 @@ describe('Compute', () => { oceanNode.addIndexer(indexer) oceanNode.addC2DEngines(config) - provider = new JsonRpcProvider('http://127.0.0.1:8545') - publisherAccount = (await provider.getSigner(0)) as Signer - consumerAccount = (await provider.getSigner(1)) as Signer + blockchain = new Blockchain(rpc, 'development', 8996, [ + 'http://172.0.0.3:8545', + 'http://127.0.0.1:8545' + ]) + publisherAccount = blockchain.getSigner() as Signer + consumerAccount = wallet as Signer const artifactsAddresses = getOceanArtifactsAdresses() publisherAddress = await publisherAccount.getAddress() diff --git a/src/test/integration/credentials.test.ts b/src/test/integration/credentials.test.ts index a9d8ead6e..1806f167b 100644 --- a/src/test/integration/credentials.test.ts +++ b/src/test/integration/credentials.test.ts @@ -14,15 +14,15 @@ * 5. Try to Download the asset by all consumers. */ import { expect, assert } from 'chai' -import { JsonRpcProvider, Signer, ethers } from 'ethers' +import { Signer, ethers, JsonRpcProvider } from 'ethers' import { Database } from '../../components/database/index.js' import { OceanIndexer } from '../../components/Indexer/index.js' import { OceanNode } from '../../OceanNode.js' -import { RPCS } from '../../@types/blockchain.js' import { streamToObject } from '../../utils/util.js' import { expectedTimeoutFailure, waitToIndex } from './testUtils.js' import { + Blockchain, ENVIRONMENT_VARIABLES, EVENTS, PROTOCOL_COMMANDS, @@ -39,7 +39,6 @@ import { OverrideEnvConfig, TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig, - getMockSupportedNetworks, setupEnvironment, tearDownEnvironment } from '../utils/utils.js' @@ -56,7 +55,6 @@ import { homedir } from 'os' describe('Should run a complete node flow.', () => { let config: OceanNodeConfig let oceanNode: OceanNode - let provider: JsonRpcProvider let publisherAccount: Signer let consumerAccounts: Signer[] @@ -65,8 +63,8 @@ describe('Should run a complete node flow.', () => { let ddo: any let did: string const orderTxIds: string[] = [] - - const mockSupportedNetworks: RPCS = getMockSupportedNetworks() + let wallet: ethers.Wallet + let blockchain: Blockchain let previousConfiguration: OverrideEnvConfig[] @@ -76,17 +74,11 @@ describe('Should run a complete node flow.', () => { TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig( [ - ENVIRONMENT_VARIABLES.RPCS, - ENVIRONMENT_VARIABLES.INDEXER_NETWORKS, - ENVIRONMENT_VARIABLES.PRIVATE_KEY, ENVIRONMENT_VARIABLES.AUTHORIZED_DECRYPTERS, ENVIRONMENT_VARIABLES.ALLOWED_ADMINS, ENVIRONMENT_VARIABLES.ADDRESS_FILE ], [ - JSON.stringify(mockSupportedNetworks), - JSON.stringify([8996]), - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), `${homedir}/.ocean/ocean-contracts/artifacts/address.json` @@ -94,24 +86,29 @@ describe('Should run a complete node flow.', () => { ) ) + const rpc: string = 'http://127.0.0.1:8545' config = await getConfiguration(true) // Force reload the configuration const database = await new Database(config.dbConfig) oceanNode = await OceanNode.getInstance(database) const indexer = new OceanIndexer(database, config.indexingNetworks) oceanNode.addIndexer(indexer) + const provider = new JsonRpcProvider(rpc) + wallet = new ethers.Wallet(process.env.ANOTHER_WALLET_PRIVATE_KEY, provider) let network = getOceanArtifactsAdressesByChainId(DEVELOPMENT_CHAIN_ID) if (!network) { network = getOceanArtifactsAdresses().development } - provider = new JsonRpcProvider('http://127.0.0.1:8545') - - publisherAccount = (await provider.getSigner(0)) as Signer + blockchain = new Blockchain(rpc, 'development', 8996, [ + 'http://172.0.0.3:8545', + 'http://127.0.0.1:8545' + ]) + publisherAccount = blockchain.getSigner() as Signer consumerAccounts = [ - (await provider.getSigner(1)) as Signer, - (await provider.getSigner(2)) as Signer, - (await provider.getSigner(3)) as Signer + wallet as Signer, + new ethers.Wallet(process.env.NODE1_PRIVATE_KEY) as Signer, + new ethers.Wallet(process.env.NODE2_PRIVATE_KEY) as Signer ] consumerAddresses = await Promise.all(consumerAccounts.map((a) => a.getAddress())) }) diff --git a/src/test/integration/download.test.ts b/src/test/integration/download.test.ts index 05f2d1bc6..acf36728c 100644 --- a/src/test/integration/download.test.ts +++ b/src/test/integration/download.test.ts @@ -1,13 +1,13 @@ import { expect, assert } from 'chai' -import { JsonRpcProvider, Signer, ethers } from 'ethers' +import { Signer, ethers, JsonRpcProvider } from 'ethers' import { Database } from '../../components/database/index.js' import { OceanIndexer } from '../../components/Indexer/index.js' import { OceanNode } from '../../OceanNode.js' -import { RPCS } from '../../@types/blockchain.js' import { streamToString, streamToObject } from '../../utils/util.js' import { expectedTimeoutFailure, waitToIndex } from './testUtils.js' import { + Blockchain, ENVIRONMENT_VARIABLES, EVENTS, PROTOCOL_COMMANDS, @@ -29,7 +29,6 @@ import { OverrideEnvConfig, TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig, - getMockSupportedNetworks, setupEnvironment, tearDownEnvironment } from '../utils/utils.js' @@ -48,7 +47,6 @@ describe('Should run a complete node flow.', () => { let config: OceanNodeConfig let database: Database let oceanNode: OceanNode - let provider: JsonRpcProvider let publisherAccount: Signer let consumerAccount: Signer let consumerAddress: string @@ -56,8 +54,9 @@ describe('Should run a complete node flow.', () => { let publishedDataset: any let actualDDO: any let indexer: OceanIndexer + let wallet: ethers.Wallet + let blockchain: Blockchain - const mockSupportedNetworks: RPCS = getMockSupportedNetworks() const serviceId = '0' let previousConfiguration: OverrideEnvConfig[] @@ -68,17 +67,11 @@ describe('Should run a complete node flow.', () => { TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig( [ - ENVIRONMENT_VARIABLES.RPCS, - ENVIRONMENT_VARIABLES.INDEXER_NETWORKS, - ENVIRONMENT_VARIABLES.PRIVATE_KEY, ENVIRONMENT_VARIABLES.AUTHORIZED_DECRYPTERS, ENVIRONMENT_VARIABLES.ALLOWED_ADMINS, ENVIRONMENT_VARIABLES.ADDRESS_FILE ], [ - JSON.stringify(mockSupportedNetworks), - JSON.stringify([8996]), - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), `${homedir}/.ocean/ocean-contracts/artifacts/address.json` @@ -96,11 +89,16 @@ describe('Should run a complete node flow.', () => { if (!network) { network = getOceanArtifactsAdresses().development } - - provider = new JsonRpcProvider('http://127.0.0.1:8545') - - publisherAccount = (await provider.getSigner(0)) as Signer - consumerAccount = (await provider.getSigner(1)) as Signer + const rpc: string = 'http://127.0.0.1:8545' + const provider = new JsonRpcProvider(rpc) + wallet = new ethers.Wallet(process.env.ANOTHER_WALLET_PRIVATE_KEY, provider) + blockchain = new Blockchain(rpc, 'development', 8996, [ + 'http://172.0.0.3:8545', + 'http://127.0.0.1:8545' + ]) + + publisherAccount = blockchain.getSigner() as Signer + consumerAccount = wallet as Signer consumerAddress = await consumerAccount.getAddress() }) diff --git a/src/test/integration/encryptDecryptDDO.test.ts b/src/test/integration/encryptDecryptDDO.test.ts index 174469394..f85a8715d 100644 --- a/src/test/integration/encryptDecryptDDO.test.ts +++ b/src/test/integration/encryptDecryptDDO.test.ts @@ -1,12 +1,4 @@ -import { - Contract, - ethers, - getAddress, - hexlify, - JsonRpcProvider, - Signer, - ZeroAddress -} from 'ethers' +import { Contract, ethers, getAddress, hexlify, Signer, ZeroAddress } from 'ethers' import { assert, expect } from 'chai' import { getEventFromTx, streamToString } from '../../utils/util.js' import ERC721Factory from '@oceanprotocol/contracts/artifacts/contracts/ERC721Factory.sol/ERC721Factory.json' assert { type: 'json' } @@ -23,6 +15,7 @@ import { encrypt } from '../../utils/crypt.js' import { Database } from '../../components/database/index.js' import { DecryptDdoHandler } from '../../components/core/handler/ddoHandler.js' import { + Blockchain, ENVIRONMENT_VARIABLES, getConfiguration, PROTOCOL_COMMANDS @@ -44,7 +37,6 @@ import { OceanIndexer } from '../../components/Indexer/index.js' describe('Should encrypt and decrypt DDO', () => { let database: Database let oceanNode: OceanNode - let provider: JsonRpcProvider let publisherAccount: Signer let publisherAddress: string let factoryContract: Contract @@ -57,6 +49,7 @@ describe('Should encrypt and decrypt DDO', () => { let documentHash: any let indexer: OceanIndexer const nonce = Math.floor(Date.now() / 1000).toString() + let blockchain: Blockchain const chainId = 8996 const mockSupportedNetworks: RPCS = { @@ -71,29 +64,26 @@ describe('Should encrypt and decrypt DDO', () => { let previousConfiguration: OverrideEnvConfig[] before(async () => { - provider = new JsonRpcProvider('http://127.0.0.1:8545') - publisherAccount = (await provider.getSigner(0)) as Signer - publisherAddress = await publisherAccount.getAddress() - genericAsset = genericDDO previousConfiguration = await setupEnvironment( TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig( + [ENVIRONMENT_VARIABLES.AUTHORIZED_DECRYPTERS, ENVIRONMENT_VARIABLES.ADDRESS_FILE], [ - ENVIRONMENT_VARIABLES.PRIVATE_KEY, - ENVIRONMENT_VARIABLES.RPCS, - ENVIRONMENT_VARIABLES.INDEXER_NETWORKS, - ENVIRONMENT_VARIABLES.AUTHORIZED_DECRYPTERS, - ENVIRONMENT_VARIABLES.ADDRESS_FILE - ], - [ - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', - JSON.stringify(mockSupportedNetworks), - JSON.stringify([8996]), - JSON.stringify([publisherAddress]), + JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), `${homedir}/.ocean/ocean-contracts/artifacts/address.json` ] ) ) + + const rpc: string = 'http://127.0.0.1:8545' + blockchain = new Blockchain(rpc, 'development', 8996, [ + 'http://172.0.0.3:8545', + 'http://127.0.0.1:8545' + ]) + + publisherAccount = blockchain.getSigner() as Signer + publisherAddress = await publisherAccount.getAddress() + genericAsset = genericDDO let artifactsAddresses = getOceanArtifactsAdressesByChainId(DEVELOPMENT_CHAIN_ID) if (!artifactsAddresses) { artifactsAddresses = getOceanArtifactsAdresses().development diff --git a/src/test/integration/encryptFile.test.ts b/src/test/integration/encryptFile.test.ts index acbef3475..d29a294ac 100644 --- a/src/test/integration/encryptFile.test.ts +++ b/src/test/integration/encryptFile.test.ts @@ -1,7 +1,7 @@ import { expect, assert } from 'chai' import { getConfiguration } from '../../utils/config.js' import { OceanNode } from '../../OceanNode.js' -import { ENVIRONMENT_VARIABLES, PROTOCOL_COMMANDS } from '../../utils/constants.js' +import { PROTOCOL_COMMANDS } from '../../utils/constants.js' import { OceanNodeConfig } from '../../@types/OceanNode.js' import { Readable } from 'stream' import { EncryptFileHandler } from '../../components/core/handler/encryptHandler.js' @@ -11,7 +11,6 @@ import fs from 'fs' import { OverrideEnvConfig, TEST_ENV_CONFIG_FILE, - buildEnvOverrideConfig, setupEnvironment, tearDownEnvironment } from '../utils/utils.js' @@ -23,13 +22,7 @@ describe('Encrypt File', () => { let previousConfiguration: OverrideEnvConfig[] before(async () => { - previousConfiguration = await setupEnvironment( - TEST_ENV_CONFIG_FILE, - buildEnvOverrideConfig( - [ENVIRONMENT_VARIABLES.PRIVATE_KEY], - ['0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58'] - ) - ) + previousConfiguration = await setupEnvironment(TEST_ENV_CONFIG_FILE) config = await getConfiguration(true) // Force reload the configuration const dbconn = await new Database(config.dbConfig) oceanNode = await OceanNode.getInstance(dbconn) diff --git a/src/test/integration/indexer.test.ts b/src/test/integration/indexer.test.ts index 5c8b53c21..4ffd994d9 100644 --- a/src/test/integration/indexer.test.ts +++ b/src/test/integration/indexer.test.ts @@ -1,8 +1,8 @@ import { expect, assert } from 'chai' import { createHash } from 'crypto' import { - JsonRpcProvider, Signer, + JsonRpcProvider, Contract, ethers, getAddress, @@ -62,7 +62,6 @@ import { EncryptMethod } from '../../@types/fileObject.js' describe('Indexer stores a new metadata events and orders.', () => { let database: Database let oceanNode: OceanNode - let provider: JsonRpcProvider let factoryContract: Contract let nftContract: Contract let publisherAccount: Signer @@ -81,6 +80,8 @@ describe('Indexer stores a new metadata events and orders.', () => { let reusedOrderEvent: any let initialOrderCount: number let indexer: OceanIndexer + let wallet: ethers.Wallet + let blockchain: Blockchain const feeToken = '0x312213d6f6b5FCF9F56B7B8946A6C727Bf4Bc21f' const serviceIndex = 0 // dummy index const consumeMarketFeeAddress = ZeroAddress // marketplace fee Collector @@ -93,18 +94,8 @@ describe('Indexer stores a new metadata events and orders.', () => { previousConfiguration = await setupEnvironment( null, buildEnvOverrideConfig( - [ - ENVIRONMENT_VARIABLES.RPCS, - ENVIRONMENT_VARIABLES.INDEXER_NETWORKS, - ENVIRONMENT_VARIABLES.PRIVATE_KEY, - ENVIRONMENT_VARIABLES.ADDRESS_FILE - ], - [ - JSON.stringify(mockSupportedNetworks), - JSON.stringify([8996]), - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', - `${homedir}/.ocean/ocean-contracts/artifacts/address.json` - ] + [ENVIRONMENT_VARIABLES.ADDRESS_FILE], + [`${homedir}/.ocean/ocean-contracts/artifacts/address.json`] ) ) @@ -117,10 +108,16 @@ describe('Indexer stores a new metadata events and orders.', () => { if (!artifactsAddresses) { artifactsAddresses = getOceanArtifactsAdresses().development } - - provider = new JsonRpcProvider('http://127.0.0.1:8545') - publisherAccount = (await provider.getSigner(0)) as Signer - consumerAccount = (await provider.getSigner(1)) as Signer + const rpc: string = 'http://127.0.0.1:8545' + const provider = new JsonRpcProvider(rpc) + wallet = new ethers.Wallet(process.env.ANOTHER_WALLET_PRIVATE_KEY, provider) + blockchain = new Blockchain(rpc, 'development', 8996, [ + 'http://172.0.0.3:8545', + 'http://127.0.0.1:8545' + ]) + + publisherAccount = blockchain.getSigner() as Signer + consumerAccount = wallet as Signer genericAsset = JSON.parse(JSON.stringify(genericDDO)) factoryContract = new ethers.Contract( artifactsAddresses.ERC721Factory, diff --git a/src/test/integration/operationsDashboard.test.ts b/src/test/integration/operationsDashboard.test.ts index 074644318..4f8dfd26b 100644 --- a/src/test/integration/operationsDashboard.test.ts +++ b/src/test/integration/operationsDashboard.test.ts @@ -3,7 +3,6 @@ import { Readable } from 'stream' import { Signer, JsonRpcProvider, ethers, Contract, parseUnits } from 'ethers' import { Database } from '../../components/database/index.js' import { OceanNode } from '../../OceanNode.js' -import { RPCS } from '../../@types/blockchain.js' import { downloadAsset } from '../data/assets.js' import { publishAsset } from '../utils/assets.js' import { homedir } from 'os' @@ -12,7 +11,6 @@ import { OverrideEnvConfig, TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig, - getMockSupportedNetworks, setupEnvironment, tearDownEnvironment } from '../utils/utils.js' @@ -22,7 +20,8 @@ import { PROTOCOL_COMMANDS, getConfiguration, EVENTS, - INDEXER_CRAWLING_EVENTS + INDEXER_CRAWLING_EVENTS, + Blockchain } from '../../utils/index.js' import { OceanNodeConfig } from '../../@types/OceanNode.js' import ERC20Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json' assert { type: 'json' } @@ -60,6 +59,7 @@ describe('Should test admin operations', () => { let publishedDataset: any let dbconn: Database let indexer: OceanIndexer + let blockchain: Blockchain const currentDate = new Date() const expiryTimestamp = new Date( currentDate.getFullYear() + 1, @@ -67,16 +67,8 @@ describe('Should test admin operations', () => { currentDate.getDate() ).getTime() const provider = new JsonRpcProvider('http://127.0.0.1:8545') - const wallet = new ethers.Wallet( - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', - provider - ) - const destinationWallet = new ethers.Wallet( - '0xef4b441145c1d0f3b4bc6d61d29f5c6e502359481152f869247c7a4244d45209', - provider - ) - - const mockSupportedNetworks: RPCS = getMockSupportedNetworks() + let wallet: Signer + let destinationWallet: Signer let previousConfiguration: OverrideEnvConfig[] @@ -86,19 +78,13 @@ describe('Should test admin operations', () => { TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig( [ - ENVIRONMENT_VARIABLES.RPCS, - ENVIRONMENT_VARIABLES.INDEXER_NETWORKS, - ENVIRONMENT_VARIABLES.PRIVATE_KEY, ENVIRONMENT_VARIABLES.AUTHORIZED_DECRYPTERS, ENVIRONMENT_VARIABLES.ALLOWED_ADMINS, ENVIRONMENT_VARIABLES.ADDRESS_FILE ], [ - JSON.stringify(mockSupportedNetworks), - JSON.stringify([8996]), - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), - JSON.stringify([await wallet.getAddress()]), + JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), `${homedir}/.ocean/ocean-contracts/artifacts/address.json` ] ) @@ -109,6 +95,17 @@ describe('Should test admin operations', () => { oceanNode = await OceanNode.getInstance(dbconn) indexer = new OceanIndexer(dbconn, config.indexingNetworks) oceanNode.addIndexer(indexer) + const rpc: string = 'http://127.0.0.1:8545' + blockchain = new Blockchain(rpc, 'development', 8996, [ + 'http://172.0.0.3:8545', + 'http://127.0.0.1:8545' + ]) + + wallet = blockchain.getSigner() + destinationWallet = new ethers.Wallet( + process.env.ANOTHER_WALLET_PRIVATE_KEY, + provider + ) as Signer }) async function getSignature(message: string) { diff --git a/src/test/integration/transactionValidation.test.ts b/src/test/integration/transactionValidation.test.ts index 104c677f8..f9f5552e7 100644 --- a/src/test/integration/transactionValidation.test.ts +++ b/src/test/integration/transactionValidation.test.ts @@ -1,5 +1,5 @@ import { expect, assert } from 'chai' -import { JsonRpcProvider, Signer } from 'ethers' +import { JsonRpcProvider, Signer, ethers } from 'ethers' import { validateOrderTransaction } from '../../components/core/utils/validateOrders.js' import { expectedTimeoutFailure, waitToIndex } from './testUtils.js' import { genericDDO } from '../data/ddo.js' @@ -10,7 +10,6 @@ import { getOceanArtifactsAdressesByChainId } from '../../utils/address.js' import { publishAsset, orderAsset, reOrderAsset } from '../utils/assets.js' -import { RPCS } from '../../@types/blockchain.js' import { OceanIndexer } from '../../components/Indexer/index.js' import { OceanNode } from '../../OceanNode.js' import { OceanNodeConfig } from '../../@types/OceanNode.js' @@ -20,11 +19,11 @@ import { OverrideEnvConfig, TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig, - getMockSupportedNetworks, setupEnvironment, tearDownEnvironment } from '../utils/utils.js' import { homedir } from 'os' +import { Blockchain } from '../../utils/blockchain.js' describe('validateOrderTransaction Function with Orders', () => { let database: Database let oceanNode: OceanNode @@ -39,27 +38,19 @@ describe('validateOrderTransaction Function with Orders', () => { let resolvedDDO: any let publishedDataset: any let indexer: OceanIndexer + let wallet: ethers.Wallet + let blockchain: Blockchain const serviceId = '0' // dummy index const timeout = 0 let config: OceanNodeConfig - const mockSupportedNetworks: RPCS = getMockSupportedNetworks() let previousConfiguration: OverrideEnvConfig[] before(async () => { previousConfiguration = await setupEnvironment( TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig( + [ENVIRONMENT_VARIABLES.AUTHORIZED_DECRYPTERS, ENVIRONMENT_VARIABLES.ADDRESS_FILE], [ - ENVIRONMENT_VARIABLES.RPCS, - ENVIRONMENT_VARIABLES.INDEXER_NETWORKS, - ENVIRONMENT_VARIABLES.PRIVATE_KEY, - ENVIRONMENT_VARIABLES.AUTHORIZED_DECRYPTERS, - ENVIRONMENT_VARIABLES.ADDRESS_FILE - ], - [ - JSON.stringify(mockSupportedNetworks), - JSON.stringify([8996]), - '0xc594c6e5def4bab63ac29eed19a134c130388f74f019bc74b8f4389df2837a58', JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), `${homedir}/.ocean/ocean-contracts/artifacts/address.json` ] @@ -76,11 +67,17 @@ describe('validateOrderTransaction Function with Orders', () => { if (!network) { network = getOceanArtifactsAdresses().development } + const rpc: string = 'http://127.0.0.1:8545' + provider = new JsonRpcProvider(rpc) + wallet = new ethers.Wallet(process.env.ANOTHER_WALLET_PRIVATE_KEY, provider) - provider = new JsonRpcProvider('http://127.0.0.1:8545') + blockchain = new Blockchain(rpc, 'development', 8996, [ + 'http://172.0.0.3:8545', + 'http://127.0.0.1:8545' + ]) - publisherAccount = (await provider.getSigner(0)) as Signer - consumerAccount = (await provider.getSigner(1)) as Signer + publisherAccount = blockchain.getSigner() as Signer + consumerAccount = wallet as Signer consumerAddress = await consumerAccount.getAddress() let artifactsAddresses = getOceanArtifactsAdressesByChainId(DEVELOPMENT_CHAIN_ID) diff --git a/src/test/unit/blockchain.test.ts b/src/test/unit/blockchain.test.ts index cde1d1de8..bb198262a 100644 --- a/src/test/unit/blockchain.test.ts +++ b/src/test/unit/blockchain.test.ts @@ -5,20 +5,31 @@ import { Blockchain } from '../../utils/blockchain.js' import { getConfiguration } from '../../utils/config.js' import { DEFAULT_TEST_TIMEOUT, + OverrideEnvConfig, + buildEnvOverrideConfig, setupEnvironment, + tearDownEnvironment, TEST_ENV_CONFIG_FILE } from '../utils/utils.js' +import { ENVIRONMENT_VARIABLES } from '../../utils/constants.js' import { expectedTimeoutFailure } from '../integration/testUtils.js' import { DEVELOPMENT_CHAIN_ID, KNOWN_CONFIDENTIAL_EVMS } from '../../utils/address.js' import { isConfidentialEVM } from '../../utils/asset.js' +let envOverrides: OverrideEnvConfig[] let config: OceanNodeConfig let rpcs: RPCS let network: SupportedNetwork let blockchain: Blockchain describe('Should validate blockchain network connections', () => { before(async () => { - setupEnvironment(TEST_ENV_CONFIG_FILE) + envOverrides = buildEnvOverrideConfig( + [ENVIRONMENT_VARIABLES.RPCS], + [ + '{ "8996":{ "rpc":"http://172.0.0.1:8545", "fallbackRPCs": ["http://172.0.0.3:8545","http://127.0.0.1:8545"], "chainId": 8996, "network": "development", "chunkSize": 100 }}' + ] + ) + envOverrides = await setupEnvironment(TEST_ENV_CONFIG_FILE, envOverrides) config = await getConfiguration(true) rpcs = config.supportedNetworks @@ -68,4 +79,7 @@ describe('Should validate blockchain network connections', () => { } expect(isConfidentialEVM(DEVELOPMENT_CHAIN_ID)).to.be.equal(false) }) + after(async () => { + await tearDownEnvironment(envOverrides) + }) }) From 6370763aab161575bf40583edc2a4ea285b18626 Mon Sep 17 00:00:00 2001 From: mariacarmina Date: Thu, 6 Feb 2025 00:01:11 +0200 Subject: [PATCH 5/7] Export env test for unit download test. --- src/test/unit/download.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/unit/download.test.ts b/src/test/unit/download.test.ts index 6a30ae4bb..e5f5ff067 100644 --- a/src/test/unit/download.test.ts +++ b/src/test/unit/download.test.ts @@ -14,6 +14,7 @@ import { AssetUtils, isConfidentialChainDDO } from '../../utils/asset.js' import { DDO } from '../../@types/DDO/DDO.js' import { Service } from '../../@types/DDO/Service.js' import { DEVELOPMENT_CHAIN_ID, KNOWN_CONFIDENTIAL_EVMS } from '../../utils/address.js' +import { TEST_ENV_CONFIG_FILE, setupEnvironment } from '../utils/utils.js' let config: OceanNodeConfig let db: Database @@ -21,6 +22,7 @@ let oceanNode: OceanNode describe('Should validate files structure for download', () => { before(async () => { + await setupEnvironment(TEST_ENV_CONFIG_FILE) config = await getConfiguration(true) db = await new Database(config.dbConfig) oceanNode = OceanNode.getInstance(db) From d704202ab4aab0edd9306d9634bacc564af5b0d0 Mon Sep 17 00:00:00 2001 From: mariacarmina Date: Thu, 6 Feb 2025 00:08:26 +0200 Subject: [PATCH 6/7] Override rpcs. --- src/test/integration/compute.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/integration/compute.test.ts b/src/test/integration/compute.test.ts index d16c818ef..a41853c71 100644 --- a/src/test/integration/compute.test.ts +++ b/src/test/integration/compute.test.ts @@ -48,6 +48,7 @@ import { OverrideEnvConfig, TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig, + getMockSupportedNetworks, setupEnvironment, tearDownEnvironment } from '../utils/utils.js' @@ -66,6 +67,7 @@ import { getAlgoChecksums, validateAlgoForDataset } from '../../components/core/compute/utils.js' +import { RPCS } from '../../@types/blockchain.js' describe('Compute', () => { let previousConfiguration: OverrideEnvConfig[] @@ -100,10 +102,12 @@ describe('Compute', () => { let datasetDDO: any before(async () => { + const mockSupportedNetworks: RPCS = getMockSupportedNetworks() previousConfiguration = await setupEnvironment( TEST_ENV_CONFIG_FILE, buildEnvOverrideConfig( [ + ENVIRONMENT_VARIABLES.RPCS, ENVIRONMENT_VARIABLES.AUTHORIZED_DECRYPTERS, ENVIRONMENT_VARIABLES.ADDRESS_FILE, ENVIRONMENT_VARIABLES.OPERATOR_SERVICE_URL @@ -111,6 +115,7 @@ describe('Compute', () => { // ENVIRONMENT_VARIABLES.DB_TYPE ], [ + mockSupportedNetworks, JSON.stringify(['0xe2DD09d719Da89e5a3D0F2549c7E24566e947260']), `${homedir}/.ocean/ocean-contracts/artifacts/address.json`, JSON.stringify(['http://localhost:31000']) From 723d14e7a874dfdf60570d8bf9a45fe3be55a740 Mon Sep 17 00:00:00 2001 From: mariacarmina Date: Thu, 6 Feb 2025 14:33:37 +0200 Subject: [PATCH 7/7] updated workflow. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 57a8da879..d2fdab15d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -84,7 +84,7 @@ jobs: NODE3_PRIVATE_KEY: ${{ secrets.NODE3_PRIVATE_KEY }} IPFS_GATEWAY: http://172.15.0.16:8080/ ARWEAVE_GATEWAY: https://arweave.net/ - RPCS: '{ "1": {"rpc": "https://rpc.eth.gateway.fm", "chainId": 1, "network": "mainet", "chunkSize": 100}, "137": {"rpc": "https://polygon.meowrpc.com", "chainId": 137, "network": "polygon", "chunkSize": 100 }, "80001": {"rpc": "https://rpc-mumbai.maticvigil.com","chainId": 80001, "network": "polygon-mumbai", "chunkSize": 100 } }' + RPCS: '{ "8996": {"rpc": "http://127.0.0.1:8545", "chainId": 8996, "network": "development", "chunkSize": 100}}' DB_URL: 'http://localhost:8108/?apiKey=xyz' DB_TYPE: 'typesense' FEE_TOKENS: '{ "1": "0x967da4048cD07aB37855c090aAF366e4ce1b9F48", "137": "0x282d8efCe846A88B159800bd4130ad77443Fa1A1", "80001": "0xd8992Ed72C445c35Cb4A2be468568Ed1079357c8", "56": "0xDCe07662CA8EbC241316a15B611c89711414Dd1a" }'