diff options
author | Myles Borins <mylesborins@github.com> | 2020-10-02 17:52:19 -0400 |
---|---|---|
committer | Myles Borins <mylesborins@github.com> | 2020-10-07 09:59:49 -0400 |
commit | 2e545249557c265f7d5f338cc3a382985211603c (patch) | |
tree | a18ca49252a58cc5a80cd438a020a99bf48a8d23 /deps/npm/node_modules/libnpmaccess/test/index.js | |
parent | 14699846452e627f97dedb85991eea67d932a79d (diff) | |
download | node-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.js | 170 |
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() |