From e7efeefea80a712ebb3c3c1749f352e7ae9fddae Mon Sep 17 00:00:00 2001 From: Milan Hauth Date: Wed, 30 Mar 2022 16:05:04 +0200 Subject: [PATCH] fix(default-reporter): use loglevel to filter deprecation warnings (#4343) --- .changeset/thirty-pigs-jump.md | 5 +++++ packages/default-reporter/src/index.ts | 5 +++++ packages/pnpm/test/install/misc.ts | 30 ++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 .changeset/thirty-pigs-jump.md diff --git a/.changeset/thirty-pigs-jump.md b/.changeset/thirty-pigs-jump.md new file mode 100644 index 00000000000..246d35a3dd2 --- /dev/null +++ b/.changeset/thirty-pigs-jump.md @@ -0,0 +1,5 @@ +--- +"@pnpm/default-reporter": patch +--- + +hide "WARN deprecated" messages on loglevel error. diff --git a/packages/default-reporter/src/index.ts b/packages/default-reporter/src/index.ts index 39bf10aa293..cde8030eea3 100644 --- a/packages/default-reporter/src/index.ts +++ b/packages/default-reporter/src/index.ts @@ -104,6 +104,11 @@ export function toOutput$ ( const progressPushStream = new Rx.Subject() const stagePushStream = new Rx.Subject() const deprecationPushStream = new Rx.Subject() + if (opts.reportingOptions?.logLevel === 'error') { + // disable logging + // calls to deprecationPushStream.next() will have no effect + deprecationPushStream.complete() + } const summaryPushStream = new Rx.Subject() const lifecyclePushStream = new Rx.Subject() const statsPushStream = new Rx.Subject() diff --git a/packages/pnpm/test/install/misc.ts b/packages/pnpm/test/install/misc.ts index 83fc7d9da29..218df38fbd6 100644 --- a/packages/pnpm/test/install/misc.ts +++ b/packages/pnpm/test/install/misc.ts @@ -459,3 +459,33 @@ test('installation fails with a timeout error', async () => { execPnpm(['add', 'typescript@2.4.2', '--fetch-timeout=1', '--fetch-retries=0']) ).rejects.toThrow() }) + +// integration test for packages/default-reporter/src/index.ts -> deprecationPushStream +// TODO: use a smaller package for testing deprecation +test('logLevel=error hides "WARN deprecated" messages', async () => { + prepare({ + dependencies: { + express: '0.14.1', + }, + }) + + const result = execPnpmSync(['install', '--loglevel', 'error', '--lockfile-only']) + + expect(result.status).toBe(0) + expect(result.stdout.toString()).not.toContain('\u2009WARN\u2009 deprecated ') +}) + +// integration test for packages/default-reporter/src/index.ts -> deprecationPushStream +// TODO: use a smaller package for testing deprecation +test('logLevel=warn shows "WARN deprecated" messages', async () => { + prepare({ + dependencies: { + express: '0.14.1', + }, + }) + + const result = execPnpmSync(['install', '--loglevel', 'warn', '--lockfile-only']) + + expect(result.status).toBe(0) + expect(result.stdout.toString()).toContain('\u2009WARN\u2009 deprecated ') +})