| var common = require("../common-tap.js") |
| var test = require("tap").test |
| var npm = require("../../") |
| var osenv = require("osenv") |
| var path = require("path") |
| var fs = require("fs") |
| var rimraf = require("rimraf") |
| var mkdirp = require("mkdirp") |
| var pkg = path.resolve(__dirname, "404-parent") |
| var mr = require("npm-registry-mock") |
| |
| test("404-parent: if parent exists, specify parent in error message", function (t) { |
| setup() |
| rimraf.sync(path.resolve(pkg, "node_modules")) |
| performInstall(function (err) { |
| t.ok(err instanceof Error, "error was returned") |
| t.ok(err.parent === "404-parent-test", "error's parent set") |
| t.end() |
| }) |
| }) |
| |
| test("cleanup", function (t) { |
| process.chdir(osenv.tmpdir()) |
| rimraf.sync(pkg) |
| t.end() |
| }) |
| |
| function setup() { |
| mkdirp.sync(pkg) |
| mkdirp.sync(path.resolve(pkg, "cache")) |
| fs.writeFileSync(path.resolve(pkg, "package.json"), JSON.stringify({ |
| author: "Evan Lucas", |
| name: "404-parent-test", |
| version: "0.0.0", |
| description: "Test for 404-parent", |
| dependencies: { |
| "test-npm-404-parent-test": "*" |
| } |
| }), "utf8") |
| process.chdir(pkg) |
| } |
| |
| function plugin (server) { |
| server.get("/test-npm-404-parent-test") |
| .reply(404, {"error": "version not found"}) |
| } |
| |
| function performInstall (cb) { |
| mr({port : common.port, plugin : plugin}, function (er, s) { // create mock registry. |
| npm.load({registry: common.registry}, function () { |
| npm.commands.install(pkg, [], function (err) { |
| cb(err) |
| s.close() // shutdown mock npm server. |
| }) |
| }) |
| }) |
| } |