]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/prepublish.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / prepublish.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/prepublish.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/prepublish.js
new file mode 100644 (file)
index 0000000..36391be
--- /dev/null
@@ -0,0 +1,82 @@
+// verify that prepublish runs on pack and publish
+var common = require("../common-tap")
+var test = require("tap").test
+var fs = require("graceful-fs")
+var join = require("path").join
+var mkdirp = require("mkdirp")
+var rimraf = require("rimraf")
+
+var pkg = join(__dirname, "prepublish_package")
+var tmp = join(pkg, "tmp")
+var cache = join(pkg, "cache")
+
+test("setup", function (t) {
+  var n = 0
+  cleanup()
+  mkdirp(pkg, then())
+  mkdirp(cache, then())
+  mkdirp(tmp, then())
+  function then () {
+    n++
+    return function (er) {
+      if (er) throw er
+      if (--n === 0) next()
+    }
+  }
+
+  function next () {
+    fs.writeFile(join(pkg, "package.json"), JSON.stringify({
+      name: "npm-test-prepublish",
+      version: "1.2.5",
+      scripts: { prepublish: "echo ok" }
+    }), "ascii", function (er) {
+      if (er) throw er
+
+      t.pass("setup done")
+      t.end()
+    })
+  }
+})
+
+test("test", function (t) {
+  var env = {
+    "npm_config_cache"  : cache,
+    "npm_config_tmp"    : tmp,
+    "npm_config_prefix" : pkg,
+    "npm_config_global" : "false"
+  }
+  for (var i in process.env) {
+    if (!/^npm_config_/.test(i))
+      env[i] = process.env[i]
+  }
+
+  common.npm([
+      "pack",
+      "--loglevel", "warn"
+    ], { cwd: pkg, env: env }, function(err, code, stdout, stderr) {
+    t.equal(code, 0, "pack finished successfully")
+    t.ifErr(err, "pack finished successfully")
+
+    t.notOk(stderr, "got stderr data:" + JSON.stringify("" + stderr))
+    var c = stdout.trim()
+    var regex = new RegExp("" +
+      "> npm-test-prepublish@1.2.5 prepublish [^\\r\\n]+\\r?\\n" +
+      "> echo ok\\r?\\n" +
+      "\\r?\\n" +
+      "ok\\r?\\n" +
+      "npm-test-prepublish-1.2.5.tgz", "ig")
+
+    t.ok(c.match(regex))
+    t.end()
+  })
+})
+
+test("cleanup", function (t) {
+  cleanup()
+  t.pass("cleaned up")
+  t.end()
+})
+
+function cleanup() {
+  rimraf.sync(pkg)
+}