summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/libnpmpublish/test/publish.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/libnpmpublish/test/publish.js')
-rw-r--r--deps/npm/node_modules/libnpmpublish/test/publish.js129
1 files changed, 129 insertions, 0 deletions
diff --git a/deps/npm/node_modules/libnpmpublish/test/publish.js b/deps/npm/node_modules/libnpmpublish/test/publish.js
index 65b8c82524..23eef2181f 100644
--- a/deps/npm/node_modules/libnpmpublish/test/publish.js
+++ b/deps/npm/node_modules/libnpmpublish/test/publish.js
@@ -917,3 +917,132 @@ test('publishConfig on manifest', t => {
})
})
})
+
+test('publish with encoded _auth', t => {
+ const manifest = {
+ name: 'libnpmpublish',
+ version: '1.0.0',
+ description: 'some stuff'
+ }
+ return mockTar({
+ 'package.json': JSON.stringify(manifest),
+ 'index.js': 'console.log("hello world")'
+ }).then(tarData => {
+ const shasum = crypto.createHash('sha1').update(tarData).digest('hex')
+ const integrity = ssri.fromData(tarData, { algorithms: ['sha512'] })
+ const packument = {
+ name: 'libnpmpublish',
+ description: 'some stuff',
+ readme: '',
+ _id: 'libnpmpublish',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ maintainers: [
+ { name: 'myuser', email: 'my@ema.il' }
+ ],
+ versions: {
+ '1.0.0': {
+ _id: 'libnpmpublish@1.0.0',
+ _npmUser: {
+ name: 'myuser',
+ email: 'my@ema.il'
+ },
+ maintainers: [
+ { name: 'myuser', email: 'my@ema.il' }
+ ],
+ _nodeVersion: process.versions.node,
+ name: 'libnpmpublish',
+ version: '1.0.0',
+ description: 'some stuff',
+ dist: {
+ shasum,
+ integrity: integrity.toString(),
+ tarball: `http://mock.reg/libnpmpublish/-/libnpmpublish-1.0.0.tgz`
+ }
+ }
+ },
+ _attachments: {
+ 'libnpmpublish-1.0.0.tgz': {
+ 'content_type': 'application/octet-stream',
+ data: tarData.toString('base64'),
+ length: tarData.length
+ }
+ }
+ }
+ const srv = tnock(t, REG)
+ srv.put('/libnpmpublish', body => {
+ t.deepEqual(body, packument, 'posted packument matches expectations')
+ return true
+ }, {
+ authorization: 'Bearer deadbeef'
+ }).reply(201, {})
+
+ return publish(manifest, tarData, OPTS.concat({
+ _auth: Buffer.from('myuser:mypassword', 'utf8').toString('base64'),
+ email: 'my@ema.il'
+ })).then(ret => {
+ t.ok(ret, 'publish succeeded using _auth')
+ })
+ })
+})
+
+test('publish with 302 redirect', t => {
+ const manifest = {
+ name: 'libnpmpublish',
+ version: '1.0.0',
+ description: 'some stuff'
+ }
+ return mockTar({
+ 'package.json': JSON.stringify(manifest),
+ 'index.js': 'console.log("hello world")'
+ }).then(tarData => {
+ const shasum = crypto.createHash('sha1').update(tarData).digest('hex')
+ const integrity = ssri.fromData(tarData, { algorithms: ['sha512'] })
+ const packument = {
+ name: 'libnpmpublish',
+ description: 'some stuff',
+ readme: '',
+ _id: 'libnpmpublish',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ _id: 'libnpmpublish@1.0.0',
+ _nodeVersion: process.versions.node,
+ name: 'libnpmpublish',
+ version: '1.0.0',
+ description: 'some stuff',
+ dist: {
+ shasum,
+ integrity: integrity.toString(),
+ tarball: `http://mock.reg/libnpmpublish/-/libnpmpublish-1.0.0.tgz`
+ }
+ }
+ },
+ _attachments: {
+ 'libnpmpublish-1.0.0.tgz': {
+ 'content_type': 'application/octet-stream',
+ data: tarData.toString('base64'),
+ length: tarData.length
+ }
+ }
+ }
+ tnock(t, REG).put('/libnpmpublish').reply(302, '', {
+ location: 'http://blah.net/libnpmpublish'
+ })
+ tnock(t, 'http://blah.net').put('/libnpmpublish', body => {
+ t.deepEqual(body, packument, 'posted packument matches expectations')
+ return true
+ }, {
+ authorization: 'Bearer deadbeef'
+ }).reply(201, {})
+
+ return publish(manifest, tarData, OPTS.concat({
+ token: 'deadbeef'
+ })).then(ret => {
+ t.ok(ret, 'publish succeeded')
+ })
+ })
+})