| var fs = require("fs") |
| var resolve = require("path").resolve |
| |
| var osenv = require("osenv") |
| var mkdirp = require("mkdirp") |
| var rimraf = require("rimraf") |
| var test = require("tap").test |
| |
| var common = require("../common-tap.js") |
| |
| var pkg = resolve(__dirname, "install-man") |
| var target = resolve(__dirname, "install-man-target") |
| |
| var EXEC_OPTS = { |
| cwd: target |
| } |
| |
| var json = { |
| name : "install-man", |
| version : "1.2.3", |
| man : [ "./install-man.1" ] |
| } |
| |
| test("setup", function (t) { |
| setup() |
| t.pass("setup ran") |
| t.end() |
| }) |
| |
| test("install man page", function (t) { |
| common.npm( |
| [ |
| "install", |
| "--prefix", target, |
| "--global", |
| pkg |
| ], |
| EXEC_OPTS, |
| function (err, code, stdout, stderr) { |
| t.ifError(err, "npm command ran from test") |
| t.equals(code, 0, "install exited with success (0)") |
| t.ok(stdout, "output indicating success") |
| t.ok( |
| fs.existsSync(resolve(target, "share", "man", "man1", "install-man.1")), |
| "man page link was created" |
| ) |
| |
| t.end() |
| } |
| ) |
| }) |
| |
| test("clean", function (t) { |
| cleanup() |
| t.pass("cleaned up") |
| t.end() |
| }) |
| |
| function setup () { |
| cleanup() |
| mkdirp.sync(pkg) |
| // make sure it installs locally |
| mkdirp.sync(resolve(target, "node_modules")) |
| fs.writeFileSync( |
| resolve(pkg, "package.json"), |
| JSON.stringify(json, null, 2)+"\n" |
| ) |
| fs.writeFileSync(resolve(pkg, "install-man.1"), "THIS IS A MANPAGE\n") |
| } |
| |
| function cleanup () { |
| process.chdir(osenv.tmpdir()) |
| rimraf.sync(pkg) |
| rimraf.sync(target) |
| } |