summaryrefslogtreecommitdiff
path: root/deps/npm/test/tap/org.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/tap/org.js')
-rw-r--r--deps/npm/test/tap/org.js136
1 files changed, 136 insertions, 0 deletions
diff --git a/deps/npm/test/tap/org.js b/deps/npm/test/tap/org.js
new file mode 100644
index 0000000000..7315cf0b6f
--- /dev/null
+++ b/deps/npm/test/tap/org.js
@@ -0,0 +1,136 @@
+'use strict'
+
+var test = require('tap').test
+var common = require('../common-tap.js')
+
+var mr = common.fakeRegistry.compat
+
+var server
+
+test('setup', function (t) {
+ mr({port: common.port}, function (err, s) {
+ t.ifError(err, 'registry mocked successfully')
+ server = s
+ t.end()
+ })
+})
+
+const names = ['add', 'set']
+const roles = ['developer', 'admin', 'owner']
+
+names.forEach(function (name) {
+ test('org ' + name + ' [orgname] [username]: defaults to developer', function (t) {
+ const membershipData = {
+ org: {
+ name: 'myorg',
+ size: 1
+ },
+ user: 'myuser',
+ role: 'developer'
+ }
+ server.put('/-/org/myorg/user', JSON.stringify({
+ user: 'myuser'
+ })).reply(200, membershipData)
+ common.npm([
+ 'org', 'add', 'myorg', 'myuser',
+ '--json',
+ '--registry', common.registry,
+ '--loglevel', 'silent'
+ ], {}, function (err, code, stdout, stderr) {
+ t.ifError(err, 'npm org')
+
+ t.equal(code, 0, 'exited OK')
+ t.equal(stderr, '', 'no error output')
+
+ t.same(JSON.parse(stdout), membershipData)
+ t.end()
+ })
+ })
+
+ roles.forEach(function (role) {
+ test('org ' + name + ' [orgname] [username]: accepts role ' + role, function (t) {
+ const membershipData = {
+ org: {
+ name: 'myorg',
+ size: 1
+ },
+ user: 'myuser',
+ role: role
+ }
+ server.put('/-/org/myorg/user', JSON.stringify({
+ user: 'myuser'
+ })).reply(200, membershipData)
+ common.npm([
+ 'org', name, 'myorg', 'myuser',
+ '--json',
+ '--registry', common.registry,
+ '--loglevel', 'silent'
+ ], {}, function (err, code, stdout, stderr) {
+ t.ifError(err, 'npm org')
+
+ t.equal(code, 0, 'exited OK')
+ t.equal(stderr, '', 'no error output')
+
+ t.same(JSON.parse(stdout), membershipData)
+ t.end()
+ })
+ })
+ })
+})
+
+test('org rm [orgname] [username]', function (t) {
+ const membershipData = {
+ otheruser: 'admin'
+ }
+ server.delete('/-/org/myorg/user', JSON.stringify({
+ user: 'myuser'
+ })).reply(204, {})
+ server.get('/-/org/myorg/user')
+ .reply(200, membershipData)
+ common.npm([
+ 'org', 'rm', 'myorg', 'myuser',
+ '--json',
+ '--registry', common.registry,
+ '--loglevel', 'silent'
+ ], {}, function (err, code, stdout, stderr) {
+ t.ifError(err, 'npm org')
+
+ t.equal(code, 0, 'exited OK')
+ t.equal(stderr, '', 'no error output')
+ t.deepEqual(JSON.parse(stdout), {
+ user: 'myuser',
+ org: 'myorg',
+ deleted: true,
+ userCount: 1
+ }, 'got useful info')
+ t.end()
+ })
+})
+
+test('org ls [orgname]', function (t) {
+ const membershipData = {
+ username: 'admin',
+ username2: 'foo'
+ }
+ server.get('/-/org/myorg/user')
+ .reply(200, membershipData)
+ common.npm([
+ 'org', 'ls', 'myorg',
+ '--json',
+ '--registry', common.registry,
+ '--loglevel', 'silent'
+ ], {}, function (err, code, stdout, stderr) {
+ t.ifError(err, 'npm org')
+ t.equal(code, 0, 'exited OK')
+ t.equal(stderr, '', 'no error output')
+ t.same(JSON.parse(stdout), membershipData, 'outputs members')
+ t.end()
+ })
+})
+
+test('cleanup', function (t) {
+ t.pass('cleaned up')
+ server.done()
+ server.close()
+ t.end()
+})