From 7b45e9df6102c7bd6e403d1fdc9939581c38f546 Mon Sep 17 00:00:00 2001 From: Ruy Adorno Date: Wed, 24 Mar 2021 16:04:53 -0400 Subject: [PATCH] fix: npm config warn on workspaces When a workspace/workspaces config option is defined, we should log a warning message to be explicit about not supporting workspaces in the context of the `npm config` command. PR-URL: https://github.com/npm/cli/pull/2950 Credit: @ruyadorno Close: #2950 Reviewed-by: @wraithgar --- lib/config.js | 1 + test/lib/config.js | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/config.js b/lib/config.js index 6bfde9845ce33..f53d7e5ae271b 100644 --- a/lib/config.js +++ b/lib/config.js @@ -89,6 +89,7 @@ class Config extends BaseCommand { } execWorkspaces (args, filters, cb) { + this.npm.log.warn('config', 'This command does not support workspaces.') this.exec(args, cb) } diff --git a/test/lib/config.js b/test/lib/config.js index 98ece0f4f05c7..074db976517e5 100644 --- a/test/lib/config.js +++ b/test/lib/config.js @@ -54,6 +54,7 @@ const cliConfig = { const npm = { log: { + warn: () => null, info: () => null, enableProgress: () => null, disableProgress: () => null, @@ -94,8 +95,17 @@ t.test('config no args', t => { }) t.test('config ignores workspaces', t => { + npm.log.warn = (title, msg) => { + t.equal(title, 'config', 'should warn with expected title') + t.equal( + msg, + 'This command does not support workspaces.', + 'should warn with unsupported option msg' + ) + } config.execWorkspaces([], [], (err) => { t.match(err, /usage instructions/, 'should not error out when workspaces are defined') + npm.log.warn = () => null t.end() }) }) @@ -396,7 +406,7 @@ t.test('config set invalid key', t => { npm.config.validate = npmConfigValidate delete npm.config.save delete npm.config.set - delete npm.log.warn + npm.log.warn = () => null }) config.exec(['set', 'foo', 'bar'], (err) => {