]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/git-npmignore.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / git-npmignore.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/git-npmignore.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/git-npmignore.js
new file mode 100644 (file)
index 0000000..5e915a7
--- /dev/null
@@ -0,0 +1,173 @@
+var cat = require("graceful-fs").writeFileSync
+var exec = require("child_process").exec
+var readdir = require("graceful-fs").readdirSync
+var resolve = require("path").resolve
+
+var mkdirp = require("mkdirp")
+var rimraf = require("rimraf")
+var test = require("tap").test
+var tmpdir = require("osenv").tmpdir
+var which = require("which")
+
+var common = require("../common-tap.js")
+
+var pkg = resolve(__dirname, "git-npmignore")
+var dep = resolve(pkg, "deps", "gitch")
+var packname = "gitch-1.0.0.tgz"
+var packed = resolve(pkg, packname)
+var modules = resolve(pkg, "node_modules")
+var installed = resolve(modules, "gitch")
+var expected = [
+  "a.js",
+  "package.json",
+  ".npmignore"
+].sort()
+
+var EXEC_OPTS = {
+  cwd : pkg
+}
+
+var gitignore = "node_modules/\n"
+var npmignore = "t.js\n"
+
+var a = "console.log('hi');"
+var t = "require('tap').test(function (t) { t.pass('I am a test!'); t.end(); });"
+var fixture = {
+  "name" : "gitch",
+  "version" : "1.0.0",
+  "private" : true,
+  "main" : "a.js"
+}
+
+
+test("setup", function (t) {
+  setup(function (er) {
+    t.ifError(er, "setup ran OK")
+
+    t.end()
+  })
+})
+
+test("npm pack directly from directory", function (t) {
+  packInstallTest(dep, t)
+})
+
+test("npm pack via git", function (t) {
+  packInstallTest("git+file://"+dep, t)
+})
+
+test("cleanup", function (t) {
+  cleanup()
+
+  t.end()
+})
+
+function packInstallTest (spec, t) {
+  common.npm(
+    [
+      "--loglevel", "silent",
+      "pack", spec
+    ],
+    EXEC_OPTS,
+    function (err, code, stdout, stderr) {
+      t.ifError(err,  "npm pack ran without error")
+      t.notOk(code,   "npm pack exited cleanly")
+      t.notOk(stderr, "npm pack ran silently")
+      t.equal(stdout.trim(), packname, "got expected package name")
+
+      common.npm(
+        [
+          "--loglevel", "silent",
+          "install", packed
+        ],
+        EXEC_OPTS,
+        function (err, code, stdout, stderr) {
+          t.ifError(err,  "npm install ran without error")
+          t.notOk(code,   "npm install exited cleanly")
+          t.notOk(stderr, "npm install ran silently")
+
+          var actual = readdir(installed).sort()
+          t.same(actual, expected, "no unexpected files in packed directory")
+
+          rimraf(packed, function () {
+            t.end()
+          })
+        }
+      )
+    }
+  )
+}
+
+function cleanup () {
+  process.chdir(tmpdir())
+  rimraf.sync(pkg)
+}
+
+function setup (cb) {
+  cleanup()
+
+  mkdirp.sync(modules)
+  mkdirp.sync(dep)
+
+  process.chdir(dep)
+
+  cat(resolve(dep, ".npmignore"), npmignore)
+  cat(resolve(dep, ".gitignore"), gitignore)
+  cat(resolve(dep, "a.js"), a)
+  cat(resolve(dep, "t.js"), t)
+  cat(resolve(dep, "package.json"), JSON.stringify(fixture))
+
+  common.npm(
+    [
+      "--loglevel", "silent",
+      "cache", "clean"
+    ],
+    EXEC_OPTS,
+    function (er, code, _, stderr) {
+      if (er) return cb(er)
+      if (code) return cb(new Error("npm cache nonzero exit: "+code))
+      if (stderr) return cb(new Error("npm cache clean error: "+stderr))
+
+      which("git", function found (er, git) {
+        if (er) return cb(er)
+
+        exec(git+" init", init)
+
+        function init (er, _, stderr) {
+          if (er) return cb(er)
+          if (stderr) return cb(new Error("git init error: "+stderr))
+
+          exec(git+" config user.name 'Phantom Faker'", user)
+        }
+
+        function user (er, _, stderr) {
+          if (er) return cb(er)
+          if (stderr) return cb(new Error("git config error: "+stderr))
+
+          exec(git+" config user.email nope@not.real", email)
+        }
+
+        function email (er, _, stderr) {
+          if (er) return cb(er)
+          if (stderr) return cb(new Error("git config error: "+stderr))
+
+          exec(git+" add .", addAll)
+        }
+
+        function addAll (er, _, stderr) {
+          if (er) return cb(er)
+          if (stderr) return cb(new Error("git add . error: "+stderr))
+
+          exec(git+" commit -m boot", commit)
+        }
+
+        function commit (er, _, stderr) {
+          if (er) return cb(er)
+          if (stderr) return cb(new Error("git commit error: "+stderr))
+
+          cb()
+        }
+      })
+    }
+  )
+}