]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/access.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / access.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/access.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/access.js
new file mode 100644 (file)
index 0000000..41d2c93
--- /dev/null
@@ -0,0 +1,527 @@
+var fs = require('fs')
+var path = require('path')
+var mkdirp = require('mkdirp')
+var rimraf = require('rimraf')
+var mr = require('npm-registry-mock')
+
+var test = require('tap').test
+var common = require('../common-tap.js')
+
+var pkg = path.resolve(__dirname, 'access')
+var server
+
+var scoped = {
+  name: '@scoped/pkg',
+  version: '1.1.1'
+}
+
+test('setup', function (t) {
+  mkdirp(pkg, function (er) {
+    t.ifError(er, pkg + ' made successfully')
+
+    mr({port: common.port}, function (err, s) {
+      t.ifError(err, 'registry mocked successfully')
+      server = s
+
+      fs.writeFile(
+        path.join(pkg, 'package.json'),
+        JSON.stringify(scoped),
+        function (er) {
+          t.ifError(er, 'wrote package.json')
+          t.end()
+        }
+      )
+    })
+  })
+})
+
+test('npm access public on current package', function (t) {
+  server.post('/-/package/%40scoped%2Fpkg/access', JSON.stringify({
+    access: 'public'
+  })).reply(200, {
+    accessChanged: true
+  })
+  common.npm([
+    'access',
+    'public',
+    '--registry', common.registry,
+    '--loglevel', 'silent'
+  ], {
+    cwd: pkg
+  },
+  function (er, code, stdout, stderr) {
+    t.ifError(er, 'npm access')
+    t.equal(code, 0, 'exited OK')
+    t.equal(stderr, '', 'no error output')
+    t.end()
+  })
+})
+
+test('npm access public when no package passed and no package.json', function (t) {
+  // need to simulate a missing package.json
+  var missing = path.join(__dirname, 'access-public-missing-guard')
+  mkdirp.sync(path.join(missing, 'node_modules'))
+
+  common.npm([
+    'access',
+    'public',
+    '--registry', common.registry
+  ], {
+    cwd: missing
+  },
+  function (er, code, stdout, stderr) {
+    t.ifError(er, 'npm access')
+    t.match(stderr, /no package name passed to command and no package.json found/)
+    rimraf.sync(missing)
+    t.end()
+  })
+})
+
+test('npm access public when no package passed and invalid package.json', function (t) {
+  // need to simulate a missing package.json
+  var invalid = path.join(__dirname, 'access-public-invalid-package')
+  mkdirp.sync(path.join(invalid, 'node_modules'))
+  // it's hard to force `read-package-json` to break w/o ENOENT, but this will do it
+  fs.writeFileSync(path.join(invalid, 'package.json'), '{\n')
+
+  common.npm([
+    'access',
+    'public',
+    '--registry', common.registry
+  ], {
+    cwd: invalid
+  },
+  function (er, code, stdout, stderr) {
+    t.ifError(er, 'npm access')
+    t.match(stderr, /Failed to parse json/)
+    rimraf.sync(invalid)
+    t.end()
+  })
+})
+
+test('npm access restricted on current package', function (t) {
+  server.post('/-/package/%40scoped%2Fpkg/access', JSON.stringify({
+    access: 'restricted'
+  })).reply(200, {
+    accessChanged: true
+  })
+  common.npm([
+    'access',
+    'restricted',
+    '--registry', common.registry,
+    '--loglevel', 'silent'
+  ], {
+    cwd: pkg
+  },
+  function (er, code, stdout, stderr) {
+    t.ifError(er, 'npm access')
+    t.equal(code, 0, 'exited OK')
+    t.equal(stderr, '', 'no error output')
+    t.end()
+  })
+})
+
+test('npm access on named package', function (t) {
+  server.post('/-/package/%40scoped%2Fanother/access', {
+    access: 'public'
+  }).reply(200, {
+    accessChaged: true
+  })
+  common.npm(
+    [
+      'access',
+      'public', '@scoped/another',
+      '--registry', common.registry,
+      '--loglevel', 'silent'
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access')
+      t.equal(code, 0, 'exited OK')
+      t.equal(stderr, '', 'no error output')
+
+      t.end()
+    }
+  )
+})
+
+test('npm change access on unscoped package', function (t) {
+  common.npm(
+    [
+      'access',
+      'restricted', 'yargs',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ok(code, 'exited with Error')
+      t.matches(
+        stderr, /access commands are only accessible for scoped packages/)
+      t.end()
+    }
+  )
+})
+
+test('npm access grant read-only', function (t) {
+  server.put('/-/team/myorg/myteam/package', {
+    permissions: 'read-only',
+    package: '@scoped/another'
+  }).reply(201, {
+    accessChaged: true
+  })
+  common.npm(
+    [
+      'access',
+      'grant', 'read-only',
+      'myorg:myteam',
+      '@scoped/another',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access grant')
+      t.equal(code, 0, 'exited with Error')
+      t.end()
+    }
+  )
+})
+
+test('npm access grant read-write', function (t) {
+  server.put('/-/team/myorg/myteam/package', {
+    permissions: 'read-write',
+    package: '@scoped/another'
+  }).reply(201, {
+    accessChaged: true
+  })
+  common.npm(
+    [
+      'access',
+      'grant', 'read-write',
+      'myorg:myteam',
+      '@scoped/another',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access grant')
+      t.equal(code, 0, 'exited with Error')
+      t.end()
+    }
+  )
+})
+
+test('npm access grant others', function (t) {
+  common.npm(
+    [
+      'access',
+      'grant', 'rerere',
+      'myorg:myteam',
+      '@scoped/another',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ok(code, 'exited with Error')
+      t.matches(stderr, /read-only/)
+      t.matches(stderr, /read-write/)
+      t.end()
+    }
+  )
+})
+
+test('npm access revoke', function (t) {
+  server.delete('/-/team/myorg/myteam/package', {
+    package: '@scoped/another'
+  }).reply(200, {
+    accessChaged: true
+  })
+  common.npm(
+    [
+      'access',
+      'revoke',
+      'myorg:myteam',
+      '@scoped/another',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access grant')
+      t.equal(code, 0, 'exited with Error')
+      t.end()
+    }
+  )
+})
+
+test('npm access ls-packages with no team', function (t) {
+  var serverPackages = {
+    '@foo/bar': 'write',
+    '@foo/util': 'read'
+  }
+  var clientPackages = {
+    '@foo/bar': 'read-write',
+    '@foo/util': 'read-only'
+  }
+  server.get(
+    '/-/org/username/package?format=cli'
+  ).reply(200, serverPackages)
+  common.npm(
+    [
+      'access',
+      'ls-packages',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access ls-packages')
+      t.same(JSON.parse(stdout), clientPackages)
+      t.end()
+    }
+  )
+})
+
+test('npm access ls-packages on team', function (t) {
+  var serverPackages = {
+    '@foo/bar': 'write',
+    '@foo/util': 'read'
+  }
+  var clientPackages = {
+    '@foo/bar': 'read-write',
+    '@foo/util': 'read-only'
+  }
+  server.get(
+    '/-/team/myorg/myteam/package?format=cli'
+  ).reply(200, serverPackages)
+  common.npm(
+    [
+      'access',
+      'ls-packages',
+      'myorg:myteam',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access ls-packages')
+      t.same(JSON.parse(stdout), clientPackages)
+      t.end()
+    }
+  )
+})
+
+test('npm access ls-packages on org', function (t) {
+  var serverPackages = {
+    '@foo/bar': 'write',
+    '@foo/util': 'read'
+  }
+  var clientPackages = {
+    '@foo/bar': 'read-write',
+    '@foo/util': 'read-only'
+  }
+  server.get(
+    '/-/org/myorg/package?format=cli'
+  ).reply(200, serverPackages)
+  common.npm(
+    [
+      'access',
+      'ls-packages',
+      'myorg',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access ls-packages')
+      t.same(JSON.parse(stdout), clientPackages)
+      t.end()
+    }
+  )
+})
+
+test('npm access ls-packages on user', function (t) {
+  var serverPackages = {
+    '@foo/bar': 'write',
+    '@foo/util': 'read'
+  }
+  var clientPackages = {
+    '@foo/bar': 'read-write',
+    '@foo/util': 'read-only'
+  }
+  server.get(
+    '/-/org/myorg/package?format=cli'
+  ).reply(404, {error: 'nope'})
+  server.get(
+    '/-/user/myorg/package?format=cli'
+  ).reply(200, serverPackages)
+  common.npm(
+    [
+      'access',
+      'ls-packages',
+      'myorg',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access ls-packages')
+      t.same(JSON.parse(stdout), clientPackages)
+      t.end()
+    }
+  )
+})
+
+test('npm access ls-packages with no package specified or package.json', function (t) {
+  // need to simulate a missing package.json
+  var missing = path.join(__dirname, 'access-missing-guard')
+  mkdirp.sync(path.join(missing, 'node_modules'))
+
+  var serverPackages = {
+    '@foo/bar': 'write',
+    '@foo/util': 'read'
+  }
+  var clientPackages = {
+    '@foo/bar': 'read-write',
+    '@foo/util': 'read-only'
+  }
+  server.get(
+    '/-/org/myorg/package?format=cli'
+  ).reply(404, {error: 'nope'})
+  server.get(
+    '/-/user/myorg/package?format=cli'
+  ).reply(200, serverPackages)
+  common.npm(
+    [
+      'access',
+      'ls-packages',
+      'myorg',
+      '--registry', common.registry
+    ],
+    { cwd: missing },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access ls-packages')
+      t.same(JSON.parse(stdout), clientPackages)
+      rimraf.sync(missing)
+      t.end()
+    }
+  )
+})
+
+test('npm access ls-collaborators on current', function (t) {
+  var serverCollaborators = {
+    'myorg:myteam': 'write',
+    'myorg:anotherteam': 'read'
+  }
+  var clientCollaborators = {
+    'myorg:myteam': 'read-write',
+    'myorg:anotherteam': 'read-only'
+  }
+  server.get(
+    '/-/package/%40scoped%2Fpkg/collaborators?format=cli'
+  ).reply(200, serverCollaborators)
+  common.npm(
+    [
+      'access',
+      'ls-collaborators',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access ls-collaborators')
+      t.same(JSON.parse(stdout), clientCollaborators)
+      t.end()
+    }
+  )
+})
+
+test('npm access ls-collaborators on package', function (t) {
+  var serverCollaborators = {
+    'myorg:myteam': 'write',
+    'myorg:anotherteam': 'read'
+  }
+  var clientCollaborators = {
+    'myorg:myteam': 'read-write',
+    'myorg:anotherteam': 'read-only'
+  }
+  server.get(
+    '/-/package/%40scoped%2Fanother/collaborators?format=cli'
+  ).reply(200, serverCollaborators)
+  common.npm(
+    [
+      'access',
+      'ls-collaborators',
+      '@scoped/another',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access ls-collaborators')
+      t.same(JSON.parse(stdout), clientCollaborators)
+      t.end()
+    }
+  )
+})
+
+test('npm access ls-collaborators on current w/user filter', function (t) {
+  var serverCollaborators = {
+    'myorg:myteam': 'write',
+    'myorg:anotherteam': 'read'
+  }
+  var clientCollaborators = {
+    'myorg:myteam': 'read-write',
+    'myorg:anotherteam': 'read-only'
+  }
+  server.get(
+    '/-/package/%40scoped%2Fanother/collaborators?format=cli&user=zkat'
+  ).reply(200, serverCollaborators)
+  common.npm(
+    [
+      'access',
+      'ls-collaborators',
+      '@scoped/another',
+      'zkat',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ifError(er, 'npm access ls-collaborators')
+      t.same(JSON.parse(stdout), clientCollaborators)
+      t.end()
+    }
+  )
+})
+
+test('npm access edit', function (t) {
+  common.npm(
+    [
+      'access',
+      'edit', '@scoped/another',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ok(code, 'exited with Error')
+      t.match(stderr, /edit subcommand is not implemented yet/)
+      t.end()
+    }
+  )
+})
+
+test('npm access blerg', function (t) {
+  common.npm(
+    [
+      'access',
+      'blerg', '@scoped/another',
+      '--registry', common.registry
+    ],
+    { cwd: pkg },
+    function (er, code, stdout, stderr) {
+      t.ok(code, 'exited with Error')
+      t.matches(stderr, /Usage:/)
+      t.end()
+    }
+  )
+})
+
+test('cleanup', function (t) {
+  t.pass('cleaned up')
+  rimraf.sync(pkg)
+  server.done()
+  server.close()
+  t.end()
+})