From 026d28ca8193b970fa87233c70b61bfe3b69c6a8 Mon Sep 17 00:00:00 2001 From: Dario Piotrowicz Date: Fri, 18 Apr 2025 17:48:42 +0200 Subject: [PATCH] watch: clarify completion/failure watch mode messages clarify the messages that `node --watch` presents to the user when the process terminates (either successfully or because of some error) by clearly conveying that node is waiting for new file changes before restarting the process --- lib/internal/main/watch_mode.js | 5 +- test/sequential/test-watch-mode.mjs | 90 ++++++++++++++--------------- 2 files changed, 48 insertions(+), 47 deletions(-) diff --git a/lib/internal/main/watch_mode.js b/lib/internal/main/watch_mode.js index 60639efb45482d..6ccc90436e6201 100644 --- a/lib/internal/main/watch_mode.js +++ b/lib/internal/main/watch_mode.js @@ -79,10 +79,11 @@ function start() { } child.once('exit', (code) => { exited = true; + const waitingForChanges = 'Waiting for file changes before restarting...'; if (code === 0) { - process.stdout.write(`${blue}Completed running ${kCommandStr}${white}\n`); + process.stdout.write(`${blue}Completed running ${kCommandStr}. ${waitingForChanges}${white}\n`); } else { - process.stdout.write(`${red}Failed running ${kCommandStr}${white}\n`); + process.stdout.write(`${red}Failed running ${kCommandStr}. ${waitingForChanges}${white}\n`); } }); return child; diff --git a/test/sequential/test-watch-mode.mjs b/test/sequential/test-watch-mode.mjs index 324cdd10b3b4ef..bb8b895351493e 100644 --- a/test/sequential/test-watch-mode.mjs +++ b/test/sequential/test-watch-mode.mjs @@ -171,10 +171,10 @@ describe('watch mode', { concurrency: !process.env.TEST_PARALLEL, timeout: 60_00 assert.strictEqual(stderr, ''); assert.deepStrictEqual(stdout, [ 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -185,10 +185,10 @@ describe('watch mode', { concurrency: !process.env.TEST_PARALLEL, timeout: 60_00 assert.strictEqual(stderr, ''); assert.deepStrictEqual(stdout, [ 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -209,7 +209,7 @@ describe('watch mode', { concurrency: !process.env.TEST_PARALLEL, timeout: 60_00 assert.deepStrictEqual(stdout, [ `Restarting ${inspect(jsFile)}`, 'ENV: value2', - `Completed running ${inspect(jsFile)}`, + `Completed running ${inspect(jsFile)}. Waiting for file changes before restarting...`, ]); } finally { await done(); @@ -235,7 +235,7 @@ describe('watch mode', { concurrency: !process.env.TEST_PARALLEL, timeout: 60_00 `Restarting ${inspect(jsFile)}`, 'ENV: value1', 'ENV2: newValue', - `Completed running ${inspect(jsFile)}`, + `Completed running ${inspect(jsFile)}. Waiting for file changes before restarting...`, ]); } finally { await done(); @@ -261,7 +261,7 @@ describe('watch mode', { concurrency: !process.env.TEST_PARALLEL, timeout: 60_00 `Restarting ${inspect(jsFile)}`, 'ENV: value1', 'ENV2: newValue', - `Completed running ${inspect(jsFile)}`, + `Completed running ${inspect(jsFile)}. Waiting for file changes before restarting...`, ]); } finally { await done(); @@ -279,9 +279,9 @@ describe('watch mode', { concurrency: !process.env.TEST_PARALLEL, timeout: 60_00 assert.match(stderr, /Error: fails\r?\n/); assert.deepStrictEqual(stdout, [ - `Failed running ${inspect(file)}`, + `Failed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, - `Failed running ${inspect(file)}`, + `Failed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -298,10 +298,10 @@ describe('watch mode', { concurrency: !process.env.TEST_PARALLEL, timeout: 60_00 assert.strictEqual(stderr, ''); assert.deepStrictEqual(stdout, [ 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); assert.strictEqual(stderr, ''); }); @@ -324,9 +324,9 @@ describe('watch mode', { concurrency: !process.env.TEST_PARALLEL, timeout: 60_00 assert.match(stderr, /Error: Cannot find module/g); assert.deepStrictEqual(stdout, [ - `Failed running ${inspect(file)}`, + `Failed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, - `Failed running ${inspect(file)}`, + `Failed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -348,9 +348,9 @@ describe('watch mode', { concurrency: !process.env.TEST_PARALLEL, timeout: 60_00 assert.match(stderr, /Error: Cannot find module/g); assert.deepStrictEqual(stdout, [ - `Failed running ${inspect(file)}`, + `Failed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, - `Failed running ${inspect(file)}`, + `Failed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -380,10 +380,10 @@ console.log(dependency); assert.strictEqual(stderr, ''); assert.deepStrictEqual(stdout, [ '{}', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, '{}', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -398,10 +398,10 @@ console.log(dependency); assert.strictEqual(stderr, ''); assert.deepStrictEqual(stdout, [ '{}', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, '{}', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -412,13 +412,13 @@ console.log(dependency); assert.strictEqual(stderr, ''); assert.deepStrictEqual(stdout, [ 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -435,10 +435,10 @@ console.log(values.random); assert.strictEqual(stderr, ''); assert.deepStrictEqual(stdout, [ random, - `Completed running ${inspect(`${file} --random ${random}`)}`, + `Completed running ${inspect(`${file} --random ${random}`)}. Waiting for file changes before restarting...`, `Restarting ${inspect(`${file} --random ${random}`)}`, random, - `Completed running ${inspect(`${file} --random ${random}`)}`, + `Completed running ${inspect(`${file} --random ${random}`)}. Waiting for file changes before restarting...`, ]); }); @@ -452,10 +452,10 @@ console.log(values.random); assert.notStrictEqual(pid, importPid); assert.deepStrictEqual(stdout, [ 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -472,10 +472,10 @@ console.log(values.random); assert.deepStrictEqual(stdout, [ 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -521,10 +521,10 @@ console.log(values.random); assert.strictEqual(stderr, ''); assert.deepStrictEqual(stdout, [ 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -536,10 +536,10 @@ console.log(values.random); assert.strictEqual(stderr, ''); assert.deepStrictEqual(stdout, [ 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -567,11 +567,11 @@ console.log(values.random); assert.deepStrictEqual(stdout, [ 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -599,11 +599,11 @@ console.log(values.random); assert.deepStrictEqual(stdout, [ 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -631,11 +631,11 @@ console.log(values.random); assert.deepStrictEqual(stdout, [ 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -663,11 +663,11 @@ console.log(values.random); assert.deepStrictEqual(stdout, [ 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -679,10 +679,10 @@ console.log(values.random); assert.match(stderr, /listening on ws:\/\//); assert.deepStrictEqual(stdout, [ 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -704,11 +704,11 @@ console.log(values.random); assert.deepStrictEqual(stdout, [ 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, `Restarting ${inspect(file)}`, 'hello', 'running', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); @@ -788,7 +788,7 @@ process.on('message', (message) => { `Restarting ${inspect(file)}`, 'running', 'Received: second message', - `Completed running ${inspect(file)}`, + `Completed running ${inspect(file)}. Waiting for file changes before restarting...`, ]); }); });