1 var common = require("../common-tap.js")
2 var test = require("tap").test
3 var npm = require("../../")
4 var osenv = require("osenv")
5 var path = require("path")
7 var rimraf = require("rimraf")
8 var mkdirp = require("mkdirp")
9 var pkg = path.resolve(__dirname, "404-parent")
10 var mr = require("npm-registry-mock")
12 test("404-parent: if parent exists, specify parent in error message", function (t) {
14 rimraf.sync(path.resolve(pkg, "node_modules"))
15 performInstall(function (err) {
16 t.ok(err instanceof Error, "error was returned")
17 t.ok(err.parent === "404-parent-test", "error's parent set")
22 test("cleanup", function (t) {
23 process.chdir(osenv.tmpdir())
30 mkdirp.sync(path.resolve(pkg, "cache"))
31 fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify({
33 name: "404-parent-test",
35 description: "Test for 404-parent",
37 "test-npm-404-parent-test": "*"
43 function plugin (server) {
44 server.get("/test-npm-404-parent-test")
45 .reply(404, {"error": "version not found"})
48 function performInstall (cb) {
49 mr({port : common.port, plugin : plugin}, function (er, s) { // create mock registry.
50 npm.load({registry: common.registry}, function () {
51 npm.commands.install(pkg, [], function (err) {
53 s.close() // shutdown mock npm server.