From 75792595b91aa494bba396e94a5e63ea2bdccfa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nedim=20Salki=C4=87?= Date: Thu, 11 Jul 2024 22:06:10 +0200 Subject: [PATCH] fix: `launchTestNode` multiple contracts type inference (#2756) --- .changeset/soft-cycles-do.md | 5 ++++ .../src/test-utils/launch-test-node.ts | 2 +- .../src/launch-test-node-types.test.ts | 29 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 .changeset/soft-cycles-do.md create mode 100644 packages/fuel-gauge/src/launch-test-node-types.test.ts diff --git a/.changeset/soft-cycles-do.md b/.changeset/soft-cycles-do.md new file mode 100644 index 0000000000..06aae67c1a --- /dev/null +++ b/.changeset/soft-cycles-do.md @@ -0,0 +1,5 @@ +--- +"@fuel-ts/contract": patch +--- + +fix: `launchTestNode` multiple contracts type inference diff --git a/packages/contract/src/test-utils/launch-test-node.ts b/packages/contract/src/test-utils/launch-test-node.ts index b35f833190..1987632aa2 100644 --- a/packages/contract/src/test-utils/launch-test-node.ts +++ b/packages/contract/src/test-utils/launch-test-node.ts @@ -130,7 +130,7 @@ function getWalletForDeployment(config: DeployContractConfig, wallets: WalletUnl return wallets[config.walletIndex]; } -export async function launchTestNode({ +export async function launchTestNode({ providerOptions = {}, walletsConfig = {}, nodeOptions = {}, diff --git a/packages/fuel-gauge/src/launch-test-node-types.test.ts b/packages/fuel-gauge/src/launch-test-node-types.test.ts new file mode 100644 index 0000000000..a72aa4e74d --- /dev/null +++ b/packages/fuel-gauge/src/launch-test-node-types.test.ts @@ -0,0 +1,29 @@ +import { launchTestNode } from 'fuels/test-utils'; + +import type { AdvancedLoggingAbi, CallTestContractAbi } from '../test/typegen'; +import { AdvancedLoggingAbi__factory, CallTestContractAbi__factory } from '../test/typegen'; +import AdvancedLoggingBytecode from '../test/typegen/contracts/AdvancedLoggingAbi.hex'; +import CallTestContractBytecode from '../test/typegen/contracts/CallTestContractAbi.hex'; + +/** + * @group node + * @group browser + */ +describe('type level tests for launchTestNode', () => { + test('infers types correctly', async () => { + using launched = await launchTestNode({ + contractsConfigs: [ + { deployer: AdvancedLoggingAbi__factory, bytecode: AdvancedLoggingBytecode }, + { deployer: CallTestContractAbi__factory, bytecode: CallTestContractBytecode }, + { deployer: AdvancedLoggingAbi__factory, bytecode: AdvancedLoggingBytecode }, + ], + }); + const { + contracts: [c1, c2, c3], + } = launched; + + expectTypeOf(c1).toMatchTypeOf(); + expectTypeOf(c2).toMatchTypeOf(); + expectTypeOf(c3).toMatchTypeOf(); + }); +});