diff --git a/packages/truffle/test/scenarios/commandRunner.js b/packages/truffle/test/scenarios/commandRunner.js index b337eda9f4f..3d5e5da5c9d 100644 --- a/packages/truffle/test/scenarios/commandRunner.js +++ b/packages/truffle/test/scenarios/commandRunner.js @@ -54,7 +54,11 @@ module.exports = { displayHost } = {}) { const cmdLine = `${this.getExecString()} ${executableCommand} ${executableArgs}`; - const readyPrompt = `truffle(${displayHost})>`; + + const readyPrompt = + executableCommand === "debug" + ? `debug(${displayHost})>` + : `truffle(${displayHost})>`; let seenChildPrompt = false; let outputBuffer = ""; diff --git a/packages/truffle/test/scenarios/commands/debug.js b/packages/truffle/test/scenarios/commands/debug.js new file mode 100644 index 00000000000..fa3dd5b7f2f --- /dev/null +++ b/packages/truffle/test/scenarios/commands/debug.js @@ -0,0 +1,90 @@ +const CommandRunner = require("../commandRunner"); +const Server = require("../server"); +const MemoryLogger = require("../MemoryLogger"); +const assert = require("assert"); +const path = require("path"); +const sandbox = require("../sandbox"); +const tmp = require("tmp"); + +describe("truffle debug", () => { + let config; + const logger = new MemoryLogger(); + const project = path.join(__dirname, "../../sources/debug"); + + before(async () => { + config = await sandbox.create(project); + config.network = "development"; + config.logger = logger; + await Server.start(); + }); + after(async () => await Server.stop()); + + describe("when run with network option with a config", () => { + it("displays the network name in the prompt", async () => { + const networkName = config.network; + await CommandRunner.runInREPL({ + inputCommands: [], + config, + executableCommand: "debug", + executableArgs: `--network ${networkName}`, + displayHost: networkName + }); + + const output = logger.contents(); + const expectedValue = `debug(${networkName})>`; + assert( + output.includes(expectedValue), + `Expected "${expectedValue}" in output` + ); + }).timeout(90000); + }); + + describe("when run with url option", () => { + const url = "http://localhost:8545"; + const parsedUrl = new URL(url); + const displayHost = parsedUrl.host; + describe("with a config", () => { + it("displays the url hostname in the prompt", async () => { + await CommandRunner.runInREPL({ + inputCommands: [], + config, + executableCommand: "debug", + executableArgs: `--url ${url}`, + displayHost + }); + + const output = logger.contents(); + const expectedValue = `debug(${displayHost})>`; + assert( + output.includes(expectedValue), + `Expected "${expectedValue}" in output` + ); + }).timeout(90000); + }); + + describe("without a config", () => { + let sandlot; + before(() => { + sandlot = tmp.dirSync({ unsafeCleanup: true }); + config = { working_directory: sandlot.name }; + config.logger = logger; + }); + + it("displays the url hostname in the prompt", async () => { + await CommandRunner.runInREPL({ + inputCommands: [], + config, + executableCommand: "debug", + executableArgs: `--url ${url}`, + displayHost + }); + const output = logger.contents(); + const expectedValue = `debug(${displayHost})>`; + assert( + output.includes(expectedValue), + `Expected "${expectedValue}" in output` + ); + }).timeout(90000); + }); + }); +}); diff --git a/packages/truffle/test/sources/debug/truffle-config.js b/packages/truffle/test/sources/debug/truffle-config.js new file mode 100644 index 00000000000..245e7bb1b01 --- /dev/null +++ b/packages/truffle/test/sources/debug/truffle-config.js @@ -0,0 +1,11 @@ +module.exports = { + networks: { + development: { + host: "127.0.0.1", + port: 8545, + network_id: "*", + gas: 4700000, + gasPrice: 20000000000 + } + } +};