From b027d32ce8126fd0a3b4698a77a1281d9ef05d4d Mon Sep 17 00:00:00 2001 From: Robert Kowalski Date: Fri, 28 Mar 2014 18:43:43 +0100 Subject: [PATCH] Add a test for npm-shrinkwrap crashes with empty dependencies --- test/tap/shrinkwrap-empty-deps.js | 47 +++++++++++++++++++++ test/tap/shrinkwrap-empty-deps/package.json | 7 +++ 2 files changed, 54 insertions(+) create mode 100644 test/tap/shrinkwrap-empty-deps.js create mode 100644 test/tap/shrinkwrap-empty-deps/package.json diff --git a/test/tap/shrinkwrap-empty-deps.js b/test/tap/shrinkwrap-empty-deps.js new file mode 100644 index 0000000000000..9ec8e71e0baf4 --- /dev/null +++ b/test/tap/shrinkwrap-empty-deps.js @@ -0,0 +1,47 @@ +var test = require("tap").test + , npm = require("../../") + , mr = require("npm-registry-mock") + , common = require("../common-tap.js") + , path = require("path") + , fs = require("fs") + , osenv = require("osenv") + , rimraf = require("rimraf") + , pkg = __dirname + "/shrinkwrap-empty-deps" + +test("returns a list of removed items", function (t) { + var desiredResultsPath = path.resolve(pkg, "npm-shrinkwrap.json") + + cleanup() + + mr(common.port, function (s) { + setup(function () { + npm.shrinkwrap([], function (err) { + if (err) return t.fail(err) + fs.readFile(desiredResultsPath, function (err, desired) { + if (err) return t.fail(err) + t.deepEqual({ + "name": "npm-test-shrinkwrap-empty-deps", + "version": "0.0.0", + "dependencies": {} + }, JSON.parse(desired)) + cleanup() + s.close() + t.end() + }) + }) + }) + }) +}) + +function setup (cb) { + cleanup() + process.chdir(pkg) + npm.load({cache: pkg + "/cache", registry: common.registry}, function () { + cb() + }) +} + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(path.resolve(pkg, "npm-shrinkwrap.json")) +} diff --git a/test/tap/shrinkwrap-empty-deps/package.json b/test/tap/shrinkwrap-empty-deps/package.json new file mode 100644 index 0000000000000..9a51088c7ee94 --- /dev/null +++ b/test/tap/shrinkwrap-empty-deps/package.json @@ -0,0 +1,7 @@ +{ + "author": "Rockbert", + "name": "npm-test-shrinkwrap-empty-deps", + "version": "0.0.0", + "dependencies": {}, + "devDependencies": {} +}