summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/libnpmaccess/test/index.js
diff options
context:
space:
mode:
authorMyles Borins <mylesborins@github.com>2020-10-02 17:52:19 -0400
committerMyles Borins <mylesborins@github.com>2020-10-07 09:59:49 -0400
commit2e545249557c265f7d5f338cc3a382985211603c (patch)
treea18ca49252a58cc5a80cd438a020a99bf48a8d23 /deps/npm/node_modules/libnpmaccess/test/index.js
parent14699846452e627f97dedb85991eea67d932a79d (diff)
downloadnode-new-2e545249557c265f7d5f338cc3a382985211603c.tar.gz
deps: update npm to 7.0.0-rc.3
PR-URL: https://github.com/nodejs/node/pull/35474 Reviewed-By: Ruy Adorno <ruyadorno@github.com> Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org> Reviewed-By: Ben Coe <bencoe@gmail.com> Reviewed-By: Geoffrey Booth <webmaster@geoffreybooth.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Shelley Vohr <codebytere@gmail.com> Reviewed-By: Guy Bedford <guybedford@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Diffstat (limited to 'deps/npm/node_modules/libnpmaccess/test/index.js')
-rw-r--r--deps/npm/node_modules/libnpmaccess/test/index.js170
1 files changed, 120 insertions, 50 deletions
diff --git a/deps/npm/node_modules/libnpmaccess/test/index.js b/deps/npm/node_modules/libnpmaccess/test/index.js
index b48815e79a..c6d939c3d8 100644
--- a/deps/npm/node_modules/libnpmaccess/test/index.js
+++ b/deps/npm/node_modules/libnpmaccess/test/index.js
@@ -1,54 +1,72 @@
'use strict'
-const figgyPudding = require('figgy-pudding')
-const getStream = require('get-stream')
-const {test} = require('tap')
-const tnock = require('./util/tnock.js')
+const t = require('tap')
+const tnock = require('./fixtures/tnock.js')
const access = require('../index.js')
const REG = 'http://localhost:1337'
-const OPTS = figgyPudding({})({
+const OPTS = {
registry: REG
-})
+}
-test('access public', t => {
+t.test('access public', t => {
tnock(t, REG).post(
- '/-/package/%40foo%2Fbar/access', {access: 'public'}
+ '/-/package/%40foo%2Fbar/access', { access: 'public' }
).reply(200)
return access.public('@foo/bar', OPTS).then(ret => {
t.deepEqual(ret, true, 'request succeeded')
})
})
-test('access restricted', t => {
+t.test('access public - failure', t => {
+ tnock(t, REG).post(
+ '/-/package/%40foo%2Fbar/access', { access: 'public' }
+ ).reply(418)
+ return access.public('@foo/bar', OPTS)
+ .catch(err => {
+ t.equals(err.statusCode, 418, 'fails with code from registry')
+ })
+})
+
+t.test('access restricted', t => {
tnock(t, REG).post(
- '/-/package/%40foo%2Fbar/access', {access: 'restricted'}
+ '/-/package/%40foo%2Fbar/access', { access: 'restricted' }
).reply(200)
return access.restricted('@foo/bar', OPTS).then(ret => {
t.deepEqual(ret, true, 'request succeeded')
})
})
-test('access 2fa-required', t => {
+t.test('access restricted - failure', t => {
+ tnock(t, REG).post(
+ '/-/package/%40foo%2Fbar/access', { access: 'restricted' }
+ ).reply(418)
+ return access.restricted('@foo/bar', OPTS)
+ .catch(err => {
+ t.equals(err.statusCode, 418, 'fails with code from registry')
+ })
+})
+
+t.test('access 2fa-required', t => {
tnock(t, REG).post('/-/package/%40foo%2Fbar/access', {
publish_requires_tfa: true
- }).reply(200, {ok: true})
+ }).reply(200, { ok: true })
return access.tfaRequired('@foo/bar', OPTS).then(ret => {
t.deepEqual(ret, true, 'request succeeded')
})
})
-test('access 2fa-not-required', t => {
+t.test('access 2fa-not-required', t => {
tnock(t, REG).post('/-/package/%40foo%2Fbar/access', {
publish_requires_tfa: false
- }).reply(200, {ok: true})
+ }).reply(200, { ok: true })
return access.tfaNotRequired('@foo/bar', OPTS).then(ret => {
t.deepEqual(ret, true, 'request succeeded')
})
})
-test('access grant basic read-write', t => {
+t.test('access grant basic read-write', t => {
tnock(t, REG).put('/-/team/myorg/myteam/package', {
package: '@foo/bar',
permissions: 'read-write'
@@ -60,7 +78,7 @@ test('access grant basic read-write', t => {
})
})
-test('access grant basic read-only', t => {
+t.test('access grant basic read-only', t => {
tnock(t, REG).put('/-/team/myorg/myteam/package', {
package: '@foo/bar',
permissions: 'read-only'
@@ -72,7 +90,7 @@ test('access grant basic read-only', t => {
})
})
-test('access grant bad perm', t => {
+t.test('access grant bad perm', t => {
return access.grant(
'@foo/bar', 'myorg:myteam', 'unknown', OPTS
).then(ret => {
@@ -86,7 +104,7 @@ test('access grant bad perm', t => {
})
})
-test('access grant no entity', t => {
+t.test('access grant no entity', t => {
return access.grant(
'@foo/bar', undefined, 'read-write', OPTS
).then(ret => {
@@ -100,7 +118,7 @@ test('access grant no entity', t => {
})
})
-test('access grant basic unscoped', t => {
+t.test('access grant basic unscoped', t => {
tnock(t, REG).put('/-/team/myorg/myteam/package', {
package: 'bar',
permissions: 'read-write'
@@ -112,7 +130,22 @@ test('access grant basic unscoped', t => {
})
})
-test('access revoke basic', t => {
+t.test('access grant no opts passed', t => {
+ // NOTE: mocking real url, because no opts variable means `registry` value
+ // will be defauled to real registry url
+ tnock(t, 'https://registry.npmjs.org')
+ .put('/-/team/myorg/myteam/package', {
+ package: 'bar',
+ permissions: 'read-write'
+ })
+ .reply(201)
+ return access.grant('bar', 'myorg:myteam', 'read-write')
+ .then(ret => {
+ t.equals(ret, true, 'request succeeded')
+ })
+})
+
+t.test('access revoke basic', t => {
tnock(t, REG).delete('/-/team/myorg/myteam/package', {
package: '@foo/bar'
}).reply(200)
@@ -121,16 +154,30 @@ test('access revoke basic', t => {
})
})
-test('access revoke basic unscoped', t => {
+t.test('access revoke basic unscoped', t => {
tnock(t, REG).delete('/-/team/myorg/myteam/package', {
package: 'bar'
- }).reply(200, {accessChanged: true})
+ }).reply(200, { accessChanged: true })
return access.revoke('bar', 'myorg:myteam', OPTS).then(ret => {
t.deepEqual(ret, true, 'request succeeded')
})
})
-test('ls-packages on team', t => {
+t.test('access revoke no opts passed', t => {
+ // NOTE: mocking real url, because no opts variable means `registry` value
+ // will be defauled to real registry url
+ tnock(t, 'https://registry.npmjs.org')
+ .delete('/-/team/myorg/myteam/package', {
+ package: 'bar'
+ })
+ .reply(201)
+ return access.revoke('bar', 'myorg:myteam')
+ .then(ret => {
+ t.equals(ret, true, 'request succeeded')
+ })
+})
+
+t.test('ls-packages on team', t => {
const serverPackages = {
'@foo/bar': 'write',
'@foo/util': 'read',
@@ -149,7 +196,7 @@ test('ls-packages on team', t => {
})
})
-test('ls-packages on org', t => {
+t.test('ls-packages on org', t => {
const serverPackages = {
'@foo/bar': 'write',
'@foo/util': 'read',
@@ -168,7 +215,7 @@ test('ls-packages on org', t => {
})
})
-test('ls-packages on user', t => {
+t.test('ls-packages on user', t => {
const serverPackages = {
'@foo/bar': 'write',
'@foo/util': 'read',
@@ -180,14 +227,14 @@ test('ls-packages on user', t => {
'@foo/other': 'shrödinger'
}
const srv = tnock(t, REG)
- srv.get('/-/org/myuser/package?format=cli').reply(404, {error: 'not found'})
+ srv.get('/-/org/myuser/package?format=cli').reply(404, { error: 'not found' })
srv.get('/-/user/myuser/package?format=cli').reply(200, serverPackages)
return access.lsPackages('myuser', OPTS).then(data => {
t.deepEqual(data, clientPackages, 'got client package info')
})
})
-test('ls-packages error on team', t => {
+t.test('ls-packages error on team', t => {
tnock(t, REG).get('/-/team/myorg/myteam/package?format=cli').reply(404)
return access.lsPackages('myorg:myteam', OPTS).then(
() => { throw new Error('should not have succeeded') },
@@ -195,17 +242,17 @@ test('ls-packages error on team', t => {
)
})
-test('ls-packages error on user', t => {
+t.test('ls-packages error on user', t => {
const srv = tnock(t, REG)
- srv.get('/-/org/myuser/package?format=cli').reply(404, {error: 'not found'})
- srv.get('/-/user/myuser/package?format=cli').reply(404, {error: 'not found'})
+ srv.get('/-/org/myuser/package?format=cli').reply(404, { error: 'not found' })
+ srv.get('/-/user/myuser/package?format=cli').reply(404, { error: 'not found' })
return access.lsPackages('myuser', OPTS).then(
() => { throw new Error('should not have succeeded') },
err => t.equal(err.code, 'E404', 'spit out 404 if both reqs fail')
)
})
-test('ls-packages bad response', t => {
+t.test('ls-packages bad response', t => {
tnock(t, REG).get(
'/-/team/myorg/myteam/package?format=cli'
).reply(200, JSON.stringify(null))
@@ -214,7 +261,7 @@ test('ls-packages bad response', t => {
})
})
-test('ls-packages stream', t => {
+t.test('ls-packages stream', t => {
const serverPackages = {
'@foo/bar': 'write',
'@foo/util': 'read',
@@ -228,14 +275,37 @@ test('ls-packages stream', t => {
tnock(t, REG).get(
'/-/team/myorg/myteam/package?format=cli'
).reply(200, serverPackages)
- return getStream.array(
- access.lsPackages.stream('myorg:myteam', OPTS)
- ).then(data => {
- t.deepEqual(data, clientPackages, 'got streamed client package info')
- })
+ return access.lsPackages.stream('myorg:myteam', OPTS)
+ .collect()
+ .then(data => {
+ t.deepEqual(data, clientPackages, 'got streamed client package info')
+ })
+})
+
+t.test('ls-packages stream no opts', t => {
+ const serverPackages = {
+ '@foo/bar': 'write',
+ '@foo/util': 'read',
+ '@foo/other': 'shrödinger'
+ }
+ const clientPackages = [
+ ['@foo/bar', 'read-write'],
+ ['@foo/util', 'read-only'],
+ ['@foo/other', 'shrödinger']
+ ]
+ // NOTE: mocking real url, because no opts variable means `registry` value
+ // will be defauled to real registry url
+ tnock(t, 'https://registry.npmjs.org')
+ .get('/-/team/myorg/myteam/package?format=cli')
+ .reply(200, serverPackages)
+ return access.lsPackages.stream('myorg:myteam')
+ .collect()
+ .then(data => {
+ t.deepEqual(data, clientPackages, 'got streamed client package info')
+ })
})
-test('ls-collaborators', t => {
+t.test('ls-collaborators', t => {
const serverCollaborators = {
'myorg:myteam': 'write',
'myorg:anotherteam': 'read',
@@ -254,7 +324,7 @@ test('ls-collaborators', t => {
})
})
-test('ls-collaborators stream', t => {
+t.test('ls-collaborators stream', t => {
const serverCollaborators = {
'myorg:myteam': 'write',
'myorg:anotherteam': 'read',
@@ -268,14 +338,14 @@ test('ls-collaborators stream', t => {
tnock(t, REG).get(
'/-/package/%40foo%2Fbar/collaborators?format=cli'
).reply(200, serverCollaborators)
- return getStream.array(
- access.lsCollaborators.stream('@foo/bar', OPTS)
- ).then(data => {
- t.deepEqual(data, clientCollaborators, 'got collaborators')
- })
+ return access.lsCollaborators.stream('@foo/bar', OPTS)
+ .collect()
+ .then(data => {
+ t.deepEqual(data, clientCollaborators, 'got collaborators')
+ })
})
-test('ls-collaborators w/scope', t => {
+t.test('ls-collaborators w/scope', t => {
const serverCollaborators = {
'myorg:myteam': 'write',
'myorg:anotherteam': 'read',
@@ -294,7 +364,7 @@ test('ls-collaborators w/scope', t => {
})
})
-test('ls-collaborators w/o scope', t => {
+t.test('ls-collaborators w/o scope', t => {
const serverCollaborators = {
'myorg:myteam': 'write',
'myorg:anotherteam': 'read',
@@ -313,7 +383,7 @@ test('ls-collaborators w/o scope', t => {
})
})
-test('ls-collaborators bad response', t => {
+t.test('ls-collaborators bad response', t => {
tnock(t, REG).get(
'/-/package/%40foo%2Fbar/collaborators?format=cli'
).reply(200, JSON.stringify(null))
@@ -322,13 +392,13 @@ test('ls-collaborators bad response', t => {
})
})
-test('error on non-registry specs', t => {
+t.test('error on non-registry specs', t => {
const resolve = () => { throw new Error('should not succeed') }
const reject = err => t.match(
err.message, /spec.*must be a registry spec/, 'registry spec required'
)
return Promise.all([
- access.public('foo/bar').then(resolve, reject),
+ access.public('githubusername/reponame').then(resolve, reject),
access.restricted('foo/bar').then(resolve, reject),
access.grant('foo/bar', 'myorg', 'myteam', 'read-only').then(resolve, reject),
access.revoke('foo/bar', 'myorg', 'myteam').then(resolve, reject),
@@ -338,7 +408,7 @@ test('error on non-registry specs', t => {
])
})
-test('edit', t => {
+t.test('edit', t => {
t.equal(typeof access.edit, 'function', 'access.edit exists')
t.throws(() => {
access.edit()