From 29c470e33495ca094fd80b9469f4b8f447a09f3b Mon Sep 17 00:00:00 2001 From: zoeyTM Date: Tue, 27 Aug 2024 02:46:10 -0400 Subject: [PATCH] create hre locally in test --- pnpm-lock.yaml | 4 --- v-next/example-project/package.json | 3 -- .../hardhat-mocha-test-runner/test/index.ts | 33 +++++++++---------- v-next/hardhat-zod-utils/package.json | 1 - v-next/hardhat/src/index.ts | 9 ----- 5 files changed, 16 insertions(+), 34 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7dda3623307..4363fc853b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1506,10 +1506,6 @@ importers: version: 7.7.1(eslint@8.57.0)(typescript@5.5.4) v-next/example-project: - dependencies: - tsx: - specifier: ^4.11.0 - version: 4.16.5 devDependencies: '@ignored/hardhat-vnext': specifier: workspace:^3.0.0-next.3 diff --git a/v-next/example-project/package.json b/v-next/example-project/package.json index 4598e79d90a..19d09735d31 100644 --- a/v-next/example-project/package.json +++ b/v-next/example-project/package.json @@ -29,8 +29,5 @@ "mocha": "^10.0.0", "prettier": "3.2.5", "typescript": "~5.5.0" - }, - "dependencies": { - "tsx": "^4.11.0" } } diff --git a/v-next/hardhat-mocha-test-runner/test/index.ts b/v-next/hardhat-mocha-test-runner/test/index.ts index aed0b13dbfe..6757df428ab 100644 --- a/v-next/hardhat-mocha-test-runner/test/index.ts +++ b/v-next/hardhat-mocha-test-runner/test/index.ts @@ -1,5 +1,5 @@ import assert from "node:assert/strict"; -import { describe, it, afterEach } from "node:test"; +import { describe, it } from "node:test"; import { HardhatError } from "@ignored/hardhat-vnext-errors"; import { @@ -11,16 +11,16 @@ describe("Hardhat Mocha plugin", () => { describe("Success", () => { useFixtureProject("test-project"); - afterEach(async () => { - const { _resetGlobalHardhatRuntimeEnvironment } = await import( - "@ignored/hardhat-vnext" + it("should work", async () => { + const { createHardhatRuntimeEnvironment } = await import( + "@ignored/hardhat-vnext/hre" ); - _resetGlobalHardhatRuntimeEnvironment(); - }); + const hardhatConfig = await import( + "./fixture-projects/test-project/hardhat.config.js" + ); - it("should work", async () => { - const hre = await import("@ignored/hardhat-vnext"); + const hre = await createHardhatRuntimeEnvironment(hardhatConfig.default); const result = await hre.tasks.getTask("test").run({}); @@ -31,21 +31,20 @@ describe("Hardhat Mocha plugin", () => { describe("Failure", () => { useFixtureProject("invalid-mocha-config"); - afterEach(async () => { - const { _resetGlobalHardhatRuntimeEnvironment } = await import( - "@ignored/hardhat-vnext" + it("should fail", async () => { + const { createHardhatRuntimeEnvironment } = await import( + "@ignored/hardhat-vnext/hre" ); - _resetGlobalHardhatRuntimeEnvironment(); - }); - - it("should fail", async () => { const errors = "\t* Config error in config.mocha.delay: Expected boolean, received number"; + const hardhatConfig = await import( + "./fixture-projects/invalid-mocha-config/hardhat.config.js" + ); + await assertRejectsWithHardhatError( - // @ts-expect-error -- we need to invalidate the import cache to re-import the HRE - import("@ignored/hardhat-vnext?config=invalid"), + createHardhatRuntimeEnvironment(hardhatConfig.default), HardhatError.ERRORS.GENERAL.INVALID_CONFIG, { errors }, ); diff --git a/v-next/hardhat-zod-utils/package.json b/v-next/hardhat-zod-utils/package.json index df64b2ef02a..6578cd2a8e2 100644 --- a/v-next/hardhat-zod-utils/package.json +++ b/v-next/hardhat-zod-utils/package.json @@ -61,7 +61,6 @@ "zod": "^3.23.8" }, "peerDependencies": { - "@ignored/hardhat-vnext-core": "workspace:^3.0.0-next.2", "zod": "^3.23.8" } } diff --git a/v-next/hardhat/src/index.ts b/v-next/hardhat/src/index.ts index 31421d3718b..67e1b3b1107 100644 --- a/v-next/hardhat/src/index.ts +++ b/v-next/hardhat/src/index.ts @@ -12,7 +12,6 @@ import { createHardhatRuntimeEnvironment } from "./hre.js"; import { getGlobalHardhatRuntimeEnvironment, setGlobalHardhatRuntimeEnvironment, - resetGlobalHardhatRuntimeEnvironment, } from "./internal/global-hre-instance.js"; import { importUserConfig } from "./internal/helpers/config-loading.js"; @@ -39,12 +38,4 @@ export const globalOptions: GlobalOptions = hre.globalOptions; export const hooks: HookManager = hre.hooks; export const interruptions: UserInterruptionManager = hre.interruptions; -// We need to re-export this function so that plugins can use it. -export const _resetGlobalHardhatRuntimeEnvironment: typeof resetGlobalHardhatRuntimeEnvironment = - function (): void { - maybeHre = undefined; - - resetGlobalHardhatRuntimeEnvironment(); - }; - export default hre;