From 9bf8f6001afec7e6bc2134e3a08c89ce76d5ab45 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A1n=20Jakub=20Nani=C5=A1ta?=
 <jan.jakub.nanista@gmail.com>
Date: Wed, 10 Jan 2024 13:08:23 -0800
Subject: [PATCH] =?UTF-8?q?=F0=9F=AA=9A=20Normalize=20task=20names=20(#184?=
 =?UTF-8?q?)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 DEVELOPMENT.md                                | 15 ++++++-
 docker-compose.yaml                           |  4 ++
 .../src/constants/tasks.ts                    |  8 ++--
 .../oapp/{checkWire.ts => config.check.ts}    |  4 +-
 ...DefaultConfig.ts => config.get.default.ts} |  4 +-
 .../oapp/{getOAppConfig.ts => config.get.ts}  |  4 +-
 .../src/tasks/oapp/index.ts                   |  6 +--
 .../src/tasks/oapp/wire.ts                    |  4 +-
 .../task/oapp/__snapshots__/wire.test.ts.snap | 14 +++----
 ...checkWire.test.ts => config.check.test.ts} | 10 ++---
 .../config.get.default.test.ts}               |  8 ++--
 .../config.get.test.ts}                       |  8 ++--
 .../test/task/oapp/wire.test.ts               | 42 +++++++++----------
 13 files changed, 74 insertions(+), 57 deletions(-)
 rename packages/ua-devtools-evm-hardhat/src/tasks/oapp/{checkWire.ts => config.check.ts} (95%)
 rename packages/ua-devtools-evm-hardhat/src/tasks/oapp/{getDefaultConfig.ts => config.get.default.ts} (94%)
 rename packages/ua-devtools-evm-hardhat/src/tasks/oapp/{getOAppConfig.ts => config.get.ts} (96%)
 rename tests/ua-devtools-evm-hardhat-test/test/task/oapp/{checkWire.test.ts => config.check.test.ts} (78%)
 rename tests/ua-devtools-evm-hardhat-test/test/task/{getDefaultConfig.test.ts => oapp/config.get.default.test.ts} (86%)
 rename tests/ua-devtools-evm-hardhat-test/test/task/{getOAppConfig.test.ts => oapp/config.get.test.ts} (90%)

diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
index 725fcb28e..1df8b5593 100644
--- a/DEVELOPMENT.md
+++ b/DEVELOPMENT.md
@@ -153,7 +153,7 @@ pnpm hardhat lz:test:oapp:deploy
 And execute `hardhat` tasks as usual:
 
 ```bash
-pnpm hardhat lz:oapp:getDefaultConfig
+pnpm hardhat lz:oapp:config:get:default
 ```
 
 If you are developing tasks, it's useful to build the code when it changes. To do this, run the following from the project root:
@@ -211,3 +211,16 @@ If you encounter errors when running these tests, just set the environment varia
 ```bash
 CI=1 pnpm test
 ```
+
+#### Problems with snapshot updating
+
+If snapshots are used in a test that relies on filesystem paths, the situation becomes a bit complex. In long term, we should steer away from this approach as it makes updating snapshots a bit cumbersome.
+
+Should you need to update snapshots for this kind of tests, follow these steps:
+
+- Go to `docker-compose.yaml` and find the `volumes` section of the `tests` service
+- Uncomment the line that says `./tests:/app/tests` - this will link the contain & host directories where the snapshots are being written
+- Run the tests and pass a `-u` flag to `jest`
+  - `DOCKER_COMPOSE_RUN_TESTS_TURBO_ARGS="-- -u" pnpm test:ci` if you want to run all the tests
+  - `DOCKER_COMPOSE_RUN_TESTS_TURBO_ARGS="--filter=ua-devtools-evm-hardhat-test -- -u" pnpm test:ci` if you want to only run a specific test suite
+- Profit
diff --git a/docker-compose.yaml b/docker-compose.yaml
index 01e907628..482074d03 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -56,6 +56,10 @@ services:
       - DOCKER_COMPOSE_RUN_TESTS_TURBO_ARGS=$DOCKER_COMPOSE_RUN_TESTS_TURBO_ARGS
     volumes:
       - ./node_modules/.cache/turbo:/app/node_modules/.cache/turbo
+      # Uncomment these lines if you run into issues with outdated snapshots
+      #
+      # See DEVELOPMENT.md for more details on this issue
+      # - ./tests:/app/tests
       # Hardhat has an issue with caching compilers inside a docker container,
       # failing with EACCES -13 error, pointing to a permissions issue with the cache folder.
       #
diff --git a/packages/ua-devtools-evm-hardhat/src/constants/tasks.ts b/packages/ua-devtools-evm-hardhat/src/constants/tasks.ts
index 6e6924bcd..2041f8b6f 100644
--- a/packages/ua-devtools-evm-hardhat/src/constants/tasks.ts
+++ b/packages/ua-devtools-evm-hardhat/src/constants/tasks.ts
@@ -1,4 +1,4 @@
-export const TASK_LZ_WIRE_OAPP = 'lz:oapp:wire'
-export const TASK_LZ_GET_DEFAULT_CONFIG = 'lz:oapp:getDefaultConfig'
-export const TASK_LZ_GET_OAPP_CONFIG = 'lz:oapp:getOAppConfig'
-export const TASK_LZ_CHECK_WIRE_OAPP = 'lz:oapp:checkWire'
+export const TASK_LZ_OAPP_WIRE = 'lz:oapp:wire'
+export const TASK_LZ_OAPP_CONFIG_GET_DEFAULT = 'lz:oapp:config:get:default'
+export const TASK_LZ_OAPP_CONFIG_GET = 'lz:oapp:config:get'
+export const TASK_LZ_OAPP_CONFIG_CHECK = 'lz:oapp:config:check'
diff --git a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/checkWire.ts b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/config.check.ts
similarity index 95%
rename from packages/ua-devtools-evm-hardhat/src/tasks/oapp/checkWire.ts
rename to packages/ua-devtools-evm-hardhat/src/tasks/oapp/config.check.ts
index 49fdb1e9e..f4cc93d2c 100644
--- a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/checkWire.ts
+++ b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/config.check.ts
@@ -2,7 +2,7 @@ import { ActionType } from 'hardhat/types'
 import { task, types } from 'hardhat/config'
 import { createLogger, setDefaultLogLevel } from '@layerzerolabs/io-devtools'
 import { printRecords } from '@layerzerolabs/io-devtools/swag'
-import { TASK_LZ_CHECK_WIRE_OAPP } from '@/constants/tasks'
+import { TASK_LZ_OAPP_CONFIG_CHECK } from '@/constants/tasks'
 import { printLogo } from '@layerzerolabs/io-devtools/swag'
 import { OAppOmniGraph } from '@layerzerolabs/ua-devtools'
 import { createConnectedContractFactory } from '@layerzerolabs/devtools-evm-hardhat'
@@ -50,7 +50,7 @@ export const checkWire: ActionType<TaskArgs> = async ({ oappConfig: oappConfigPa
 }
 
 task(
-    TASK_LZ_CHECK_WIRE_OAPP,
+    TASK_LZ_OAPP_CONFIG_CHECK,
     'outputs visual console table to show current state of oapp connections via configuration'
 )
     .addParam('oappConfig', 'Path to your LayerZero OApp config', './layerzero.config.js', types.string)
diff --git a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getDefaultConfig.ts b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/config.get.default.ts
similarity index 94%
rename from packages/ua-devtools-evm-hardhat/src/tasks/oapp/getDefaultConfig.ts
rename to packages/ua-devtools-evm-hardhat/src/tasks/oapp/config.get.default.ts
index 6471e2e30..8176619d3 100644
--- a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getDefaultConfig.ts
+++ b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/config.get.default.ts
@@ -2,7 +2,7 @@ import { ActionType } from 'hardhat/types'
 import { task } from 'hardhat/config'
 import { printRecord } from '@layerzerolabs/io-devtools'
 import { getReceiveConfig, getSendConfig } from '@/utils/taskHelpers'
-import { TASK_LZ_GET_DEFAULT_CONFIG } from '@/constants'
+import { TASK_LZ_OAPP_CONFIG_GET_DEFAULT } from '@/constants'
 
 interface TaskArgs {
     networks: string
@@ -47,7 +47,7 @@ export const getDefaultConfig: ActionType<TaskArgs> = async (taskArgs) => {
 }
 
 task(
-    TASK_LZ_GET_DEFAULT_CONFIG,
+    TASK_LZ_OAPP_CONFIG_GET_DEFAULT,
     'outputs the default Send and Receive Messaging Library versions and the default application config'
 )
     .addParam('networks', 'comma separated list of networks')
diff --git a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getOAppConfig.ts b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/config.get.ts
similarity index 96%
rename from packages/ua-devtools-evm-hardhat/src/tasks/oapp/getOAppConfig.ts
rename to packages/ua-devtools-evm-hardhat/src/tasks/oapp/config.get.ts
index a046f9836..ee5efb380 100644
--- a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/getOAppConfig.ts
+++ b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/config.get.ts
@@ -2,7 +2,7 @@ import { ActionType } from 'hardhat/types'
 import { task } from 'hardhat/config'
 import { printRecord } from '@layerzerolabs/io-devtools'
 import { getReceiveConfig, getSendConfig } from '@/utils/taskHelpers'
-import { TASK_LZ_GET_OAPP_CONFIG } from '@/constants/tasks'
+import { TASK_LZ_OAPP_CONFIG_GET } from '@/constants/tasks'
 import assert from 'assert'
 
 interface TaskArgs {
@@ -52,7 +52,7 @@ export const getOAppConfig: ActionType<TaskArgs> = async (taskArgs) => {
 }
 
 task(
-    TASK_LZ_GET_OAPP_CONFIG,
+    TASK_LZ_OAPP_CONFIG_GET,
     'outputs the default Send and Receive Messaging Library versions and the default application config'
 )
     .addParam('networks', 'comma separated list of networks')
diff --git a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/index.ts b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/index.ts
index d6e3694a4..26ba8f84c 100644
--- a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/index.ts
+++ b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/index.ts
@@ -1,4 +1,4 @@
 import './wire'
-import './checkWire'
-import './getDefaultConfig'
-import './getOAppConfig'
+import './config.check'
+import './config.get.default'
+import './config.get'
diff --git a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/wire.ts b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/wire.ts
index 880338564..295704364 100644
--- a/packages/ua-devtools-evm-hardhat/src/tasks/oapp/wire.ts
+++ b/packages/ua-devtools-evm-hardhat/src/tasks/oapp/wire.ts
@@ -1,6 +1,6 @@
 import { task, types } from 'hardhat/config'
 import type { ActionType } from 'hardhat/types'
-import { TASK_LZ_WIRE_OAPP } from '@/constants/tasks'
+import { TASK_LZ_OAPP_WIRE } from '@/constants/tasks'
 import {
     createLogger,
     setDefaultLogLevel,
@@ -194,7 +194,7 @@ const action: ActionType<TaskArgs> = async ({
 
     return [successfulTransactions, errors, transactionsToSign]
 }
-task(TASK_LZ_WIRE_OAPP, 'Wire LayerZero OApp')
+task(TASK_LZ_OAPP_WIRE, 'Wire LayerZero OApp')
     .addParam('oappConfig', 'Path to your LayerZero OApp config', './layerzero.config.js', types.string)
     .addParam('logLevel', 'Logging level. One of: error, warn, info, verbose, debug, silly', 'info', types.string)
     .addParam(
diff --git a/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__snapshots__/wire.test.ts.snap b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__snapshots__/wire.test.ts.snap
index 74ba35f4b..67d8069a2 100644
--- a/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__snapshots__/wire.test.ts.snap
+++ b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__snapshots__/wire.test.ts.snap
@@ -1,12 +1,12 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`task/oapp/wire with invalid configs should fail if the config file does not exist 1`] = `[Error: Unable to read config file '/app/tests/ua-devtools-evm-hardhat-test/does-not-exist.js'. Check that the file exists and is readable to your terminal user]`;
+exports[`task lz:oapp:wire with invalid configs should fail if the config file does not exist 1`] = `[Error: Unable to read config file '/app/tests/ua-devtools-evm-hardhat-test/does-not-exist.js'. Check that the file exists and is readable to your terminal user]`;
 
-exports[`task/oapp/wire with invalid configs should fail if the config file is not a file 1`] = `[Error: Unable to read config file '/app/tests/ua-devtools-evm-hardhat-test/test/task/oapp'. Check that the file exists and is readable to your terminal user]`;
+exports[`task lz:oapp:wire with invalid configs should fail if the config file is not a file 1`] = `[Error: Unable to read config file '/app/tests/ua-devtools-evm-hardhat-test/test/task/oapp'. Check that the file exists and is readable to your terminal user]`;
 
-exports[`task/oapp/wire with invalid configs should fail if the config file is not a valid JSON or JS file 1`] = `[Error: Unable to read config file '/app/tests/ua-devtools-evm-hardhat-test/README.md': SyntaxError: Unexpected token '<']`;
+exports[`task lz:oapp:wire with invalid configs should fail if the config file is not a valid JSON or JS file 1`] = `[Error: Unable to read config file '/app/tests/ua-devtools-evm-hardhat-test/README.md': SyntaxError: Unexpected token '<']`;
 
-exports[`task/oapp/wire with invalid configs should fail with a malformed JS file (001) 1`] = `
+exports[`task lz:oapp:wire with invalid configs should fail with a malformed JS file (001) 1`] = `
 [Error: Config from file '/app/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__data__/configs/invalid.config.001.js' is malformed. Please fix the following errors:
 
 Property 'contracts.0.contract': Invalid input
@@ -14,13 +14,13 @@ Property 'contracts.1.contract': Invalid input
 Property 'connections': Required]
 `;
 
-exports[`task/oapp/wire with invalid configs should fail with a misconfigured file (001) 1`] = `[Error: Config from file '/app/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__data__/configs/valid.config.misconfigured.001.js' is invalid: AssertionError [ERR_ASSERTION]: Could not find a deployment for contract 'NonExistent']`;
+exports[`task lz:oapp:wire with invalid configs should fail with a misconfigured file (001) 1`] = `[Error: Config from file '/app/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__data__/configs/valid.config.misconfigured.001.js' is invalid: AssertionError [ERR_ASSERTION]: Could not find a deployment for contract 'NonExistent']`;
 
-exports[`task/oapp/wire with invalid configs should fail with an empty JS file 1`] = `
+exports[`task lz:oapp:wire with invalid configs should fail with an empty JS file 1`] = `
 [Error: Config from file '/app/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__data__/configs/invalid.config.empty.js' is malformed. Please fix the following errors:
 
 Property 'contracts': Required
 Property 'connections': Required]
 `;
 
-exports[`task/oapp/wire with invalid configs should fail with an empty JSON file 1`] = `[Error: Unable to read config file '/app/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__data__/configs/invalid.config.empty.json': SyntaxError: Unexpected end of JSON input]`;
+exports[`task lz:oapp:wire with invalid configs should fail with an empty JSON file 1`] = `[Error: Unable to read config file '/app/tests/ua-devtools-evm-hardhat-test/test/task/oapp/__data__/configs/invalid.config.empty.json': SyntaxError: Unexpected end of JSON input]`;
diff --git a/tests/ua-devtools-evm-hardhat-test/test/task/oapp/checkWire.test.ts b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/config.check.test.ts
similarity index 78%
rename from tests/ua-devtools-evm-hardhat-test/test/task/oapp/checkWire.test.ts
rename to tests/ua-devtools-evm-hardhat-test/test/task/oapp/config.check.test.ts
index db5e74153..4a3ba3db4 100644
--- a/tests/ua-devtools-evm-hardhat-test/test/task/oapp/checkWire.test.ts
+++ b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/config.check.test.ts
@@ -2,9 +2,9 @@ import hre from 'hardhat'
 import { resolve } from 'path'
 import { isFile } from '@layerzerolabs/io-devtools'
 import { deployOAppFixture } from '../../__utils__/oapp'
-import { TASK_LZ_CHECK_WIRE_OAPP, TASK_LZ_WIRE_OAPP } from '@layerzerolabs/ua-devtools-evm-hardhat'
+import { TASK_LZ_OAPP_CONFIG_CHECK, TASK_LZ_OAPP_WIRE } from '@layerzerolabs/ua-devtools-evm-hardhat'
 
-describe('task: checkWire', () => {
+describe(`task ${TASK_LZ_OAPP_CONFIG_CHECK}`, () => {
     const CONFIGS_BASE_DIR = resolve(__dirname, '__data__', 'configs')
     const configPathFixture = (fileName: string): string => {
         const path = resolve(CONFIGS_BASE_DIR, fileName)
@@ -18,7 +18,7 @@ describe('task: checkWire', () => {
 
     it('should show no chains are connected', async () => {
         const oappConfig = configPathFixture('valid.config.connected.js')
-        const result = await hre.run(TASK_LZ_CHECK_WIRE_OAPP, { oappConfig })
+        const result = await hre.run(TASK_LZ_OAPP_CONFIG_CHECK, { oappConfig })
         const expectPoint = { eid: expect.any(Number), address: expect.any(String) }
         const expectVector = { from: expectPoint, to: expectPoint }
         expect(result).toEqual([
@@ -29,8 +29,8 @@ describe('task: checkWire', () => {
 
     it('should show both chains are connected after running wire', async () => {
         const oappConfig = configPathFixture('valid.config.connected.js')
-        await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig, ci: true })
-        const result = await hre.run(TASK_LZ_CHECK_WIRE_OAPP, { oappConfig })
+        await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig, ci: true })
+        const result = await hre.run(TASK_LZ_OAPP_CONFIG_CHECK, { oappConfig })
         const expectPoint = { eid: expect.any(Number), address: expect.any(String) }
         const expectVector = { from: expectPoint, to: expectPoint }
         expect(result).toEqual([
diff --git a/tests/ua-devtools-evm-hardhat-test/test/task/getDefaultConfig.test.ts b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/config.get.default.test.ts
similarity index 86%
rename from tests/ua-devtools-evm-hardhat-test/test/task/getDefaultConfig.test.ts
rename to tests/ua-devtools-evm-hardhat-test/test/task/oapp/config.get.default.test.ts
index 54aaf9a0b..be9ecf10e 100644
--- a/tests/ua-devtools-evm-hardhat-test/test/task/getDefaultConfig.test.ts
+++ b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/config.get.default.test.ts
@@ -3,13 +3,13 @@ import {
     getDefaultExecutorConfig,
     getDefaultUlnConfig,
     setupDefaultEndpoint,
-} from '../__utils__/endpoint'
+} from '../../__utils__/endpoint'
 import { createContractFactory, getEidForNetworkName } from '@layerzerolabs/devtools-evm-hardhat'
 import hre from 'hardhat'
-import { TASK_LZ_GET_DEFAULT_CONFIG } from '@layerzerolabs/ua-devtools-evm-hardhat'
+import { TASK_LZ_OAPP_CONFIG_GET_DEFAULT } from '@layerzerolabs/ua-devtools-evm-hardhat'
 import { omniContractToPoint } from '@layerzerolabs/devtools-evm'
 
-describe('task: getDefaultConfig', () => {
+describe(`task ${TASK_LZ_OAPP_CONFIG_GET_DEFAULT}`, () => {
     beforeEach(async () => {
         await deployEndpointFixture()
         await setupDefaultEndpoint()
@@ -17,7 +17,7 @@ describe('task: getDefaultConfig', () => {
 
     it('should return default configurations', async () => {
         const networks = Object.keys(hre.userConfig.networks ?? {})
-        const getDefaultConfigTask = await hre.run(TASK_LZ_GET_DEFAULT_CONFIG, { networks: networks.toString() })
+        const getDefaultConfigTask = await hre.run(TASK_LZ_OAPP_CONFIG_GET_DEFAULT, { networks: networks.toString() })
         const contractFactory = createContractFactory()
         for (const localNetwork of networks) {
             const localEid = getEidForNetworkName(localNetwork)
diff --git a/tests/ua-devtools-evm-hardhat-test/test/task/getOAppConfig.test.ts b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/config.get.test.ts
similarity index 90%
rename from tests/ua-devtools-evm-hardhat-test/test/task/getOAppConfig.test.ts
rename to tests/ua-devtools-evm-hardhat-test/test/task/oapp/config.get.test.ts
index 546aed3d8..b440c50ad 100644
--- a/tests/ua-devtools-evm-hardhat-test/test/task/getOAppConfig.test.ts
+++ b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/config.get.test.ts
@@ -3,14 +3,14 @@ import {
     getDefaultExecutorConfig,
     getDefaultUlnConfig,
     setupDefaultEndpoint,
-} from '../__utils__/endpoint'
+} from '../../__utils__/endpoint'
 import { createContractFactory, getEidForNetworkName } from '@layerzerolabs/devtools-evm-hardhat'
 import hre from 'hardhat'
 import { AddressZero } from '@ethersproject/constants'
-import { TASK_LZ_GET_OAPP_CONFIG } from '@layerzerolabs/ua-devtools-evm-hardhat'
+import { TASK_LZ_OAPP_CONFIG_GET } from '@layerzerolabs/ua-devtools-evm-hardhat'
 import { omniContractToPoint } from '@layerzerolabs/devtools-evm'
 
-describe('task: getOAppConfig', () => {
+describe(`task ${TASK_LZ_OAPP_CONFIG_GET}`, () => {
     beforeEach(async () => {
         await deployEndpointFixture()
         await setupDefaultEndpoint()
@@ -19,7 +19,7 @@ describe('task: getOAppConfig', () => {
     it('should return app default configurations when addresses are not oapps', async () => {
         const networks = Object.keys(hre.userConfig.networks ?? {})
         const addresses = new Array(networks.length).fill(AddressZero).toString()
-        const getDefaultConfigTask = await hre.run(TASK_LZ_GET_OAPP_CONFIG, {
+        const getDefaultConfigTask = await hre.run(TASK_LZ_OAPP_CONFIG_GET, {
             networks: networks.toString(),
             addresses: addresses.toString(),
         })
diff --git a/tests/ua-devtools-evm-hardhat-test/test/task/oapp/wire.test.ts b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/wire.test.ts
index dfbc42a50..30629f61f 100644
--- a/tests/ua-devtools-evm-hardhat-test/test/task/oapp/wire.test.ts
+++ b/tests/ua-devtools-evm-hardhat-test/test/task/oapp/wire.test.ts
@@ -1,7 +1,7 @@
 import hre from 'hardhat'
 import { isFile, promptToContinue } from '@layerzerolabs/io-devtools'
 import { relative, resolve } from 'path'
-import { TASK_LZ_WIRE_OAPP } from '@layerzerolabs/ua-devtools-evm-hardhat'
+import { TASK_LZ_OAPP_WIRE } from '@layerzerolabs/ua-devtools-evm-hardhat'
 import { deployOAppFixture } from '../../__utils__/oapp'
 import { cwd } from 'process'
 import { JsonRpcSigner } from '@ethersproject/providers'
@@ -17,7 +17,7 @@ jest.mock('@layerzerolabs/io-devtools', () => {
 
 const promptToContinueMock = promptToContinue as jest.Mock
 
-describe('task/oapp/wire', () => {
+describe(`task ${TASK_LZ_OAPP_WIRE}`, () => {
     // Helper matcher object that checks for OmniPoint objects
     const expectOmniPoint = { address: expect.any(String), eid: expect.any(Number) }
     // Helper matcher object that checks for OmniTransaction objects
@@ -43,11 +43,11 @@ describe('task/oapp/wire', () => {
         })
 
         it('should fail if the config file does not exist', async () => {
-            await expect(hre.run(TASK_LZ_WIRE_OAPP, { oappConfig: './does-not-exist.js' })).rejects.toMatchSnapshot()
+            await expect(hre.run(TASK_LZ_OAPP_WIRE, { oappConfig: './does-not-exist.js' })).rejects.toMatchSnapshot()
         })
 
         it('should fail if the config file is not a file', async () => {
-            await expect(hre.run(TASK_LZ_WIRE_OAPP, { oappConfig: __dirname })).rejects.toMatchSnapshot()
+            await expect(hre.run(TASK_LZ_OAPP_WIRE, { oappConfig: __dirname })).rejects.toMatchSnapshot()
         })
 
         it('should fail if the config file is not a valid JSON or JS file', async () => {
@@ -55,31 +55,31 @@ describe('task/oapp/wire', () => {
 
             expect(isFile(readme)).toBeTruthy()
 
-            await expect(hre.run(TASK_LZ_WIRE_OAPP, { oappConfig: readme })).rejects.toMatchSnapshot()
+            await expect(hre.run(TASK_LZ_OAPP_WIRE, { oappConfig: readme })).rejects.toMatchSnapshot()
         })
 
         it('should fail with an empty JSON file', async () => {
             const oappConfig = configPathFixture('invalid.config.empty.json')
 
-            await expect(hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })).rejects.toMatchSnapshot()
+            await expect(hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })).rejects.toMatchSnapshot()
         })
 
         it('should fail with an empty JS file', async () => {
             const oappConfig = configPathFixture('invalid.config.empty.js')
 
-            await expect(hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })).rejects.toMatchSnapshot()
+            await expect(hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })).rejects.toMatchSnapshot()
         })
 
         it('should fail with a malformed JS file (001)', async () => {
             const oappConfig = configPathFixture('invalid.config.001.js')
 
-            await expect(hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })).rejects.toMatchSnapshot()
+            await expect(hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })).rejects.toMatchSnapshot()
         })
 
         it('should fail with a misconfigured file (001)', async () => {
             const oappConfig = configPathFixture('valid.config.misconfigured.001.js')
 
-            await expect(hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })).rejects.toMatchSnapshot()
+            await expect(hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })).rejects.toMatchSnapshot()
         })
     })
 
@@ -91,7 +91,7 @@ describe('task/oapp/wire', () => {
         it('should exit if there is nothing to wire', async () => {
             const oappConfig = configPathFixture('valid.config.empty.js')
 
-            await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })
+            await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })
 
             expect(promptToContinueMock).not.toHaveBeenCalled()
         })
@@ -100,7 +100,7 @@ describe('task/oapp/wire', () => {
             const oappConfigAbsolute = configPathFixture('valid.config.empty.js')
             const oappConfig = relative(cwd(), oappConfigAbsolute)
 
-            await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })
+            await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })
 
             expect(promptToContinueMock).not.toHaveBeenCalled()
         })
@@ -108,7 +108,7 @@ describe('task/oapp/wire', () => {
         it('should work with typescript', async () => {
             const oappConfig = configPathFixture('valid.config.empty.ts')
 
-            await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })
+            await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })
 
             expect(promptToContinueMock).not.toHaveBeenCalled()
         })
@@ -118,7 +118,7 @@ describe('task/oapp/wire', () => {
 
             promptToContinueMock.mockResolvedValue(false)
 
-            await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig, logLevel: 'debug' })
+            await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig, logLevel: 'debug' })
 
             expect(promptToContinueMock).toHaveBeenCalledTimes(2)
         })
@@ -128,7 +128,7 @@ describe('task/oapp/wire', () => {
 
             promptToContinueMock.mockResolvedValue(false)
 
-            const result = await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig, ci: true })
+            const result = await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig, ci: true })
 
             expect(result).toEqual([[expectTransactionWithReceipt, expectTransactionWithReceipt], [], []])
             expect(promptToContinueMock).not.toHaveBeenCalled()
@@ -139,7 +139,7 @@ describe('task/oapp/wire', () => {
 
             promptToContinueMock.mockResolvedValue(true)
 
-            await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })
+            await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })
 
             expect(promptToContinueMock).toHaveBeenCalledTimes(2)
         })
@@ -149,7 +149,7 @@ describe('task/oapp/wire', () => {
 
             promptToContinueMock.mockResolvedValue(false)
 
-            const [successful, errors, pending] = await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })
+            const [successful, errors, pending] = await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })
 
             expect(successful).toEqual([])
             expect(errors).toEqual([])
@@ -164,7 +164,7 @@ describe('task/oapp/wire', () => {
                 .mockResolvedValueOnce(false) // We don't want to see the list
                 .mockResolvedValueOnce(true) // We want to continue
 
-            const [successful, errors] = await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })
+            const [successful, errors] = await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })
 
             const expectTransactionWithReceipt = { receipt: expect.any(Object), transaction: expect.any(Object) }
 
@@ -190,7 +190,7 @@ describe('task/oapp/wire', () => {
                 sendTransactionMock.mockRejectedValue(error)
 
                 const oappConfig = configPathFixture('valid.config.connected.js')
-                const [successful, errors, pending] = await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig, ci: true })
+                const [successful, errors, pending] = await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig, ci: true })
 
                 expect(errors).toEqual([
                     {
@@ -221,7 +221,7 @@ describe('task/oapp/wire', () => {
                     .mockResolvedValueOnce(true) // We want to retry
 
                 const oappConfig = configPathFixture('valid.config.connected.js')
-                const [successful, errors, pending] = await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })
+                const [successful, errors, pending] = await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })
 
                 // Check that the user has been asked to retry
                 expect(promptToContinueMock).toHaveBeenCalledWith(`Would you like to preview the failed transactions?`)
@@ -249,7 +249,7 @@ describe('task/oapp/wire', () => {
                     .mockResolvedValueOnce(false) // We don't want to retry
 
                 const oappConfig = configPathFixture('valid.config.connected.js')
-                const [successful, errors, pending] = await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })
+                const [successful, errors, pending] = await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })
 
                 // Check that the user has been asked to retry
                 expect(promptToContinueMock).toHaveBeenCalledWith(`Would you like to preview the failed transactions?`)
@@ -291,7 +291,7 @@ describe('task/oapp/wire', () => {
                     .mockResolvedValueOnce(true) // We want to retry
 
                 const oappConfig = configPathFixture('valid.config.connected.js')
-                const [successful, errors, pending] = await hre.run(TASK_LZ_WIRE_OAPP, { oappConfig })
+                const [successful, errors, pending] = await hre.run(TASK_LZ_OAPP_WIRE, { oappConfig })
 
                 // Check that the user has been asked to retry
                 expect(promptToContinueMock).toHaveBeenCalledWith(`Would you like to preview the failed transactions?`)