UNPKG

@nomiclabs/buidler-truffle4

Version:
69 lines 3.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const task_names_1 = require("@nomiclabs/buidler/builtin-tasks/task-names"); const config_1 = require("@nomiclabs/buidler/config"); const glob_1 = require("@nomiclabs/buidler/internal/util/glob"); const plugins_1 = require("@nomiclabs/buidler/plugins"); const path_1 = require("path"); const artifacts_1 = require("./artifacts"); const fixture_1 = require("./fixture"); const provisioner_1 = require("./provisioner"); const task_names_2 = require("./task-names"); function default_1() { config_1.usePlugin("@nomiclabs/buidler-web3-legacy"); let accounts; config_1.extendEnvironment((env) => { accounts = undefined; env.artifacts = plugins_1.lazyObject(() => { const provisioner = new provisioner_1.LazyTruffleContractProvisioner(env.web3, env.network.config, env.network.config.from); return new artifacts_1.TruffleEnvironmentArtifacts(env.config.paths.artifacts, provisioner); }); env.assert = plugins_1.lazyFunction(() => require("chai").assert); env.expect = plugins_1.lazyFunction(() => require("chai").expect); env.contract = (description, definition) => { if (env.network.name === plugins_1.BUIDLEREVM_NETWORK_NAME) { if (accounts === undefined) { const { privateToAddress, bufferToHex } = require("ethereumjs-util"); const netConfig = env.network.config; accounts = netConfig.accounts.map((acc) => bufferToHex(privateToAddress(acc.privateKey))); } } else if (accounts === undefined) { throw new plugins_1.BuidlerPluginError(`To run your tests that use Truffle's "contract()" function with the network "${env.network.name}", you need to use Buidler's CLI`); } describe(`Contract: ${description}`, () => { before("Running truffle fixture if available", async function () { await env.run(task_names_2.RUN_TRUFFLE_FIXTURE_TASK); }); definition(accounts); }); }; }); config_1.internalTask(task_names_1.TASK_TEST_SETUP_TEST_ENVIRONMENT, async (_, { pweb3, network }) => { if (network.name !== plugins_1.BUIDLEREVM_NETWORK_NAME) { accounts = await pweb3.eth.getAccounts(); } }); config_1.internalTask(task_names_1.TASK_COMPILE_GET_SOURCE_PATHS, async (_, { config }, runSuper) => { const sources = await runSuper(); const testSources = await glob_1.glob(path_1.join(config.paths.tests, "**", "*.sol")); return [...sources, ...testSources]; }); let wasWarningShown = false; config_1.internalTask(task_names_2.RUN_TRUFFLE_FIXTURE_TASK, async (_, env) => { const paths = env.config.paths; const hasFixture = await fixture_1.hasTruffleFixture(paths); if (!wasWarningShown) { if ((await fixture_1.hasMigrations(paths)) && !hasFixture) { console.warn("Your project has Truffle migrations, which have to be turn into a fixture to run your tests with Buidler"); wasWarningShown = true; } } if (hasFixture) { const fixture = await fixture_1.getTruffleFixtureFunction(paths); await fixture(env); } }); } exports.default = default_1; //# sourceMappingURL=index.js.map