summaryrefslogtreecommitdiff
path: root/deps/npm/test/tap/lifecycle-path.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/tap/lifecycle-path.js')
-rw-r--r--deps/npm/test/tap/lifecycle-path.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/deps/npm/test/tap/lifecycle-path.js b/deps/npm/test/tap/lifecycle-path.js
new file mode 100644
index 0000000000..34684a0c39
--- /dev/null
+++ b/deps/npm/test/tap/lifecycle-path.js
@@ -0,0 +1,61 @@
+var test = require("tap").test
+var common = require("../common-tap.js")
+var path = require("path")
+var rimraf = require("rimraf")
+var mkdirp = require("mkdirp")
+var pkg = path.resolve(__dirname, "lifecycle-path")
+var fs = require("fs")
+var link = path.resolve(pkg, "node-bin")
+
+// Without the path to the shell, nothing works usually.
+var PATH
+if (process.platform === "win32") {
+ PATH = "C:\\Windows\\system32;C:\\Windows"
+} else {
+ PATH = "/bin:/usr/bin"
+}
+
+test("setup", function (t) {
+ rimraf.sync(link)
+ fs.symlinkSync(path.dirname(process.execPath), link, "dir")
+ t.end()
+})
+
+test("make sure the path is correct", function (t) {
+ common.npm(["run-script", "path"], {
+ cwd: pkg,
+ env: {
+ PATH: PATH,
+ stdio: [ 0, "pipe", 2 ]
+ }
+ }, function (er, code, stdout, stderr) {
+ if (er) throw er
+ t.equal(code, 0, "exit code")
+ // remove the banner, we just care about the last line
+ stdout = stdout.trim().split(/\r|\n/).pop()
+ var pathSplit = process.platform === "win32" ? ";" : ":"
+ var root = path.resolve(__dirname, "../..")
+ var actual = stdout.split(pathSplit).map(function (p) {
+ if (p.indexOf(root) === 0) {
+ p = "{{ROOT}}" + p.substr(root.length)
+ }
+ return p.replace(/\\/g, "/")
+ })
+
+ // get the ones we tacked on, then the system-specific requirements
+ var expect = [
+ "{{ROOT}}/bin/node-gyp-bin",
+ "{{ROOT}}/test/tap/lifecycle-path/node_modules/.bin"
+ ].concat(PATH.split(pathSplit).map(function (p) {
+ return p.replace(/\\/g, "/")
+ }))
+ t.same(actual, expect)
+ t.end()
+ })
+})
+
+test("clean", function (t) {
+ rimraf.sync(link)
+ t.end()
+})
+