From cc1f19a2428556a2b9203e0c446d20a95a60f40a Mon Sep 17 00:00:00 2001 From: Sukanya Parashar Date: Tue, 5 Jul 2022 14:11:32 -0600 Subject: [PATCH 1/2] Add integration test for debug command --- .../truffle/test/scenarios/commandRunner.js | 8 +- .../truffle/test/scenarios/commands/debug.js | 90 +++++++++++++++++++ .../test/sources/debug/truffle-config.js | 11 +++ 3 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 packages/truffle/test/scenarios/commands/debug.js create mode 100644 packages/truffle/test/sources/debug/truffle-config.js diff --git a/packages/truffle/test/scenarios/commandRunner.js b/packages/truffle/test/scenarios/commandRunner.js index b337eda9f4f..0ba7271a869 100644 --- a/packages/truffle/test/scenarios/commandRunner.js +++ b/packages/truffle/test/scenarios/commandRunner.js @@ -54,7 +54,13 @@ module.exports = { displayHost } = {}) { const cmdLine = `${this.getExecString()} ${executableCommand} ${executableArgs}`; - const readyPrompt = `truffle(${displayHost})>`; + let readyPrompt; + + if (executableCommand === "debug") { + readyPrompt = `debug(${displayHost})>`; + } else { + readyPrompt = `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..01139097b58 --- /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 runs 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 runs 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 + } + } +}; From 23eeb941a9596e521dfd4aa97c8b256222b400f3 Mon Sep 17 00:00:00 2001 From: Sukanya Parashar Date: Thu, 7 Jul 2022 18:04:00 -0600 Subject: [PATCH 2/2] Change if/else to ternary --- packages/truffle/test/scenarios/commandRunner.js | 10 ++++------ packages/truffle/test/scenarios/commands/debug.js | 4 ++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/truffle/test/scenarios/commandRunner.js b/packages/truffle/test/scenarios/commandRunner.js index 0ba7271a869..3d5e5da5c9d 100644 --- a/packages/truffle/test/scenarios/commandRunner.js +++ b/packages/truffle/test/scenarios/commandRunner.js @@ -54,13 +54,11 @@ module.exports = { displayHost } = {}) { const cmdLine = `${this.getExecString()} ${executableCommand} ${executableArgs}`; - let readyPrompt; - if (executableCommand === "debug") { - readyPrompt = `debug(${displayHost})>`; - } else { - 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 index 01139097b58..fa3dd5b7f2f 100644 --- a/packages/truffle/test/scenarios/commands/debug.js +++ b/packages/truffle/test/scenarios/commands/debug.js @@ -19,7 +19,7 @@ describe("truffle debug", () => { }); after(async () => await Server.stop()); - describe("when runs with network option with a config", () => { + 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({ @@ -39,7 +39,7 @@ describe("truffle debug", () => { }).timeout(90000); }); - describe("when runs with url option", () => { + describe("when run with url option", () => { const url = "http://localhost:8545"; const parsedUrl = new URL(url); const displayHost = parsedUrl.host;