]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/shrinkwrap-scoped-auth.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / shrinkwrap-scoped-auth.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/shrinkwrap-scoped-auth.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/shrinkwrap-scoped-auth.js
new file mode 100644 (file)
index 0000000..79414cc
--- /dev/null
@@ -0,0 +1,108 @@
+var resolve = require("path").resolve
+var writeFileSync = require("graceful-fs").writeFileSync
+
+var mkdirp = require("mkdirp")
+var mr = require("npm-registry-mock")
+var osenv = require("osenv")
+var rimraf = require("rimraf")
+var test = require("tap").test
+
+var common = require("../common-tap.js")
+var toNerfDart = require("../../lib/config/nerf-dart.js")
+
+var pkg = resolve(__dirname, "shrinkwrap-scoped-auth")
+var outfile = resolve(pkg, "_npmrc")
+var modules = resolve(pkg, "node_modules")
+var tarballPath = "/scoped-underscore/-/scoped-underscore-1.3.1.tgz"
+var tarballURL = common.registry + tarballPath
+var tarball = resolve(__dirname, "../fixtures/scoped-underscore-1.3.1.tgz")
+
+var server
+
+var EXEC_OPTS = {
+  cwd : pkg
+}
+
+function mocks (server) {
+  var auth = "Bearer 0xabad1dea"
+  server.get(tarballPath, { authorization : auth }).replyWithFile(200, tarball)
+  server.get(tarballPath).reply(401, {
+    error  : "unauthorized",
+    reason : "You are not authorized to access this db."
+  })
+}
+
+test("setup", function (t) {
+  mr({ port : common.port, plugin : mocks }, function (err, s) {
+    server = s
+    t.ok(s, "set up mock registry")
+    setup()
+    t.end()
+  })
+})
+
+test("authed npm install with shrinkwrapped scoped package", function (t) {
+  common.npm(
+    [
+      "install",
+      "--loglevel", "silent",
+      "--fetch-retries", 0,
+      "--userconfig", outfile
+    ],
+    EXEC_OPTS,
+    function (err, code, stdout, stderr) {
+      t.ifError(err, "test runner executed without error")
+      t.equal(code, 0, "npm install exited OK")
+      t.notOk(stderr, "no output on stderr")
+      t.equal(
+        stdout,
+        "@scoped/underscore@1.3.1 node_modules/@scoped/underscore\n",
+        "module installed where expected"
+      )
+
+      t.end()
+    }
+  )
+})
+
+test("cleanup", function (t) {
+  server.close()
+  cleanup()
+  t.end()
+})
+
+var contents = "@scoped:registry="+common.registry+"\n" +
+               toNerfDart(common.registry)+":_authToken=0xabad1dea\n"
+
+var json = {
+  name : "test-package-install",
+  version : "1.0.0"
+}
+
+var shrinkwrap = {
+  name : "test-package-install",
+  version : "1.0.0",
+  dependencies : {
+    "@scoped/underscore" : {
+      resolved : tarballURL,
+      from     : ">=1.3.1 <2",
+      version  : "1.3.1"
+    }
+  }
+}
+
+function setup () {
+  cleanup()
+  mkdirp.sync(modules)
+  writeFileSync(resolve(pkg, "package.json"), JSON.stringify(json, null, 2)+"\n")
+  writeFileSync(outfile, contents)
+  writeFileSync(
+    resolve(pkg, "npm-shrinkwrap.json"),
+    JSON.stringify(shrinkwrap, null, 2)+"\n"
+  )
+}
+
+function cleanup() {
+  process.chdir(osenv.tmpdir())
+  rimraf.sync(pkg)
+}