From d2aa2bc8024fe965b5206f83c648a31486728643 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Sat, 13 Jan 2018 22:29:36 +0200 Subject: [PATCH] fix(uninstall): report updated package.json --- src/removeDeps.ts | 2 ++ test/uninstall.ts | 23 ++++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/removeDeps.ts b/src/removeDeps.ts index e59cf2e4cb..59318b1484 100644 --- a/src/removeDeps.ts +++ b/src/removeDeps.ts @@ -2,6 +2,7 @@ import loadJsonFile = require('load-json-file') import writePkg = require('write-pkg') import {DependenciesType, dependenciesTypes} from './getSaveType' import {PackageJson} from '@pnpm/types' +import {packageJsonLogger} from './loggers' export default async function ( pkgJsonPath: string, @@ -29,5 +30,6 @@ export default async function ( } await writePkg(pkgJsonPath, packageJson) + packageJsonLogger.debug({ updated: packageJson }) return packageJson } diff --git a/test/uninstall.ts b/test/uninstall.ts index 18da1c1a2b..ddb803e6c9 100644 --- a/test/uninstall.ts +++ b/test/uninstall.ts @@ -20,6 +20,7 @@ import { storePrune, RootLog, StatsLog, + PackageJsonLog, } from 'supi' import thenify = require('thenify') import sinon = require('sinon') @@ -29,10 +30,22 @@ const ncp = thenify(ncpCB.ncp) test('uninstall package with no dependencies', async (t: tape.Test) => { const project = prepare(t) - const reporter = sinon.spy() await installPkgs(['is-negative@2.1.0'], await testDefaults({ save: true })) + + const reporter = sinon.spy() await uninstall(['is-negative'], await testDefaults({ save: true, reporter })) + t.ok(reporter.calledWithMatch({ + name: 'pnpm:package-json', + level: 'debug', + initial: { + name: 'project', + version: '0.0.0', + dependencies: { + 'is-negative': '^2.1.0', + }, + }, + }), 'initial package.json logged') t.ok(reporter.calledWithMatch({ name: 'pnpm:stats', level: 'debug', @@ -47,6 +60,14 @@ test('uninstall package with no dependencies', async (t: tape.Test) => { dependencyType: 'prod', }, }), 'removing root dependency reported') + t.ok(reporter.calledWithMatch({ + name: 'pnpm:package-json', + level: 'debug', + updated: { + name: 'project', + version: '0.0.0', + }, + }), 'updated package.json logged') // uninstall does not remove packages from store // even if they become unreferenced