diff options
Diffstat (limited to 'deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js')
-rw-r--r-- | deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js b/deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js new file mode 100644 index 000000000..75f1765fc --- /dev/null +++ b/deps/npm/test/tap/shrinkwrap-shared-dev-dependency.js @@ -0,0 +1,58 @@ +var npm = npm = require("../../") +var test = require("tap").test +var path = require("path") +var fs = require("fs") +var osenv = require("osenv") +var rimraf = require("rimraf") +var mr = require("npm-registry-mock") +var common = require("../common-tap.js") + +var pkg = path.resolve(__dirname, "shrinkwrap-shared-dev-dependency") +var desiredResultsPath = path.resolve(pkg, "desired-shrinkwrap-results.json") + +test("shrinkwrap doesn't strip out the shared dependency", function (t) { + t.plan(1) + + mr(common.port, function (s) { + setup(function (err) { + if (err) return t.fail(err) + + npm.install(".", function (err) { + if (err) return t.fail(err) + + npm.commands.shrinkwrap([], true, function (err, results) { + if (err) return t.fail(err) + + fs.readFile(desiredResultsPath, function (err, desired) { + if (err) return t.fail(err) + + t.deepEqual(results, JSON.parse(desired)) + s.close() + t.end() + }) + }) + }) + }) + }) +}) + +test("cleanup", function (t) { + cleanup() + t.end() +}) + + +function setup (cb) { + cleanup() + process.chdir(pkg) + + var opts = { cache: path.resolve(pkg, "cache"), registry: common.registry } + npm.load(opts, cb) +} + +function cleanup () { + process.chdir(osenv.tmpdir()) + rimraf.sync(path.resolve(pkg, "node_modules")) + rimraf.sync(path.resolve(pkg, "cache")) + rimraf.sync(path.resolve(pkg, "npm-shrinkwrap.json")) +} |