]> gerrit.simantics Code Review - simantics/district.git/blob - 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
1 var resolve = require("path").resolve
2 var writeFileSync = require("graceful-fs").writeFileSync
3
4 var mkdirp = require("mkdirp")
5 var mr = require("npm-registry-mock")
6 var osenv = require("osenv")
7 var rimraf = require("rimraf")
8 var test = require("tap").test
9
10 var common = require("../common-tap.js")
11 var toNerfDart = require("../../lib/config/nerf-dart.js")
12
13 var pkg = resolve(__dirname, "shrinkwrap-scoped-auth")
14 var outfile = resolve(pkg, "_npmrc")
15 var modules = resolve(pkg, "node_modules")
16 var tarballPath = "/scoped-underscore/-/scoped-underscore-1.3.1.tgz"
17 var tarballURL = common.registry + tarballPath
18 var tarball = resolve(__dirname, "../fixtures/scoped-underscore-1.3.1.tgz")
19
20 var server
21
22 var EXEC_OPTS = {
23   cwd : pkg
24 }
25
26 function mocks (server) {
27   var auth = "Bearer 0xabad1dea"
28   server.get(tarballPath, { authorization : auth }).replyWithFile(200, tarball)
29   server.get(tarballPath).reply(401, {
30     error  : "unauthorized",
31     reason : "You are not authorized to access this db."
32   })
33 }
34
35 test("setup", function (t) {
36   mr({ port : common.port, plugin : mocks }, function (err, s) {
37     server = s
38     t.ok(s, "set up mock registry")
39     setup()
40     t.end()
41   })
42 })
43
44 test("authed npm install with shrinkwrapped scoped package", function (t) {
45   common.npm(
46     [
47       "install",
48       "--loglevel", "silent",
49       "--fetch-retries", 0,
50       "--userconfig", outfile
51     ],
52     EXEC_OPTS,
53     function (err, code, stdout, stderr) {
54       t.ifError(err, "test runner executed without error")
55       t.equal(code, 0, "npm install exited OK")
56       t.notOk(stderr, "no output on stderr")
57       t.equal(
58         stdout,
59         "@scoped/underscore@1.3.1 node_modules/@scoped/underscore\n",
60         "module installed where expected"
61       )
62
63       t.end()
64     }
65   )
66 })
67
68 test("cleanup", function (t) {
69   server.close()
70   cleanup()
71   t.end()
72 })
73
74 var contents = "@scoped:registry="+common.registry+"\n" +
75                toNerfDart(common.registry)+":_authToken=0xabad1dea\n"
76
77 var json = {
78   name : "test-package-install",
79   version : "1.0.0"
80 }
81
82 var shrinkwrap = {
83   name : "test-package-install",
84   version : "1.0.0",
85   dependencies : {
86     "@scoped/underscore" : {
87       resolved : tarballURL,
88       from     : ">=1.3.1 <2",
89       version  : "1.3.1"
90     }
91   }
92 }
93
94 function setup () {
95   cleanup()
96   mkdirp.sync(modules)
97   writeFileSync(resolve(pkg, "package.json"), JSON.stringify(json, null, 2)+"\n")
98   writeFileSync(outfile, contents)
99   writeFileSync(
100     resolve(pkg, "npm-shrinkwrap.json"),
101     JSON.stringify(shrinkwrap, null, 2)+"\n"
102   )
103 }
104
105 function cleanup() {
106   process.chdir(osenv.tmpdir())
107   rimraf.sync(pkg)
108 }