summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/libnpmpublish/test/unpublish.js
diff options
context:
space:
mode:
authorKat Marchán <kzm@zkat.tech>2019-01-29 14:43:00 -0800
committerMyles Borins <mylesborins@google.com>2019-02-12 00:06:29 -0800
commit43dd49c9782848c25e5b03448c8a0f923f13c158 (patch)
treef7ac5d645019b2b844f26be66c291bbae734d097 /deps/npm/node_modules/libnpmpublish/test/unpublish.js
parentb361f9577fbd72e518438d3fa0b01f7d34d814a5 (diff)
downloadandroid-node-v8-43dd49c9782848c25e5b03448c8a0f923f13c158.tar.gz
android-node-v8-43dd49c9782848c25e5b03448c8a0f923f13c158.tar.bz2
android-node-v8-43dd49c9782848c25e5b03448c8a0f923f13c158.zip
deps: upgrade npm to 6.7.0
PR-URL: https://github.com/nodejs/node/pull/25804 Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/npm/node_modules/libnpmpublish/test/unpublish.js')
-rw-r--r--deps/npm/node_modules/libnpmpublish/test/unpublish.js249
1 files changed, 249 insertions, 0 deletions
diff --git a/deps/npm/node_modules/libnpmpublish/test/unpublish.js b/deps/npm/node_modules/libnpmpublish/test/unpublish.js
new file mode 100644
index 0000000000..19ac464a3b
--- /dev/null
+++ b/deps/npm/node_modules/libnpmpublish/test/unpublish.js
@@ -0,0 +1,249 @@
+'use strict'
+
+const figgyPudding = require('figgy-pudding')
+const test = require('tap').test
+const tnock = require('./util/tnock.js')
+
+const OPTS = figgyPudding({ registry: {} })({
+ registry: 'https://mock.reg/'
+})
+
+const REG = OPTS.registry
+const REV = '72-47f2986bfd8e8b55068b204588bbf484'
+const unpub = require('../unpublish.js')
+
+test('basic test', t => {
+ const doc = {
+ _id: 'foo',
+ _rev: REV,
+ name: 'foo',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'foo',
+ dist: {
+ tarball: `${REG}/foo/-/foo-1.0.0.tgz`
+ }
+ }
+ }
+ }
+ const srv = tnock(t, REG)
+ srv.get('/foo?write=true').reply(200, doc)
+ srv.delete(`/foo/-rev/${REV}`).reply(201)
+ return unpub('foo', OPTS).then(ret => {
+ t.ok(ret, 'foo was unpublished')
+ })
+})
+
+test('scoped basic test', t => {
+ const doc = {
+ _id: '@foo/bar',
+ _rev: REV,
+ name: '@foo/bar',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: '@foo/bar',
+ dist: {
+ tarball: `${REG}/@foo/bar/-/foo-1.0.0.tgz`
+ }
+ }
+ }
+ }
+ const srv = tnock(t, REG)
+ srv.get('/@foo%2fbar?write=true').reply(200, doc)
+ srv.delete(`/@foo%2fbar/-rev/${REV}`).reply(201)
+ return unpub('@foo/bar', OPTS).then(() => {
+ t.ok(true, 'foo was unpublished')
+ })
+})
+
+test('unpublish specific, last version', t => {
+ const doc = {
+ _id: 'foo',
+ _rev: REV,
+ name: 'foo',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'foo',
+ dist: {
+ tarball: `${REG}/foo/-/foo-1.0.0.tgz`
+ }
+ }
+ }
+ }
+ const srv = tnock(t, REG)
+ srv.get('/foo?write=true').reply(200, doc)
+ srv.delete(`/foo/-rev/${REV}`).reply(201)
+ return unpub('foo@1.0.0', OPTS).then(() => {
+ t.ok(true, 'foo was unpublished')
+ })
+})
+
+test('unpublish specific version', t => {
+ const doc = {
+ _id: 'foo',
+ _rev: REV,
+ _revisions: [1, 2, 3],
+ _attachments: [1, 2, 3],
+ name: 'foo',
+ 'dist-tags': {
+ latest: '1.0.1'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'foo',
+ dist: {
+ tarball: `${REG}/foo/-/foo-1.0.0.tgz`
+ }
+ },
+ '1.0.1': {
+ name: 'foo',
+ dist: {
+ tarball: `${REG}/foo/-/foo-1.0.1.tgz`
+ }
+ }
+ }
+ }
+ const postEdit = {
+ _id: 'foo',
+ _rev: REV,
+ name: 'foo',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'foo',
+ dist: {
+ tarball: `${REG}/foo/-/foo-1.0.0.tgz`
+ }
+ }
+ }
+ }
+
+ const srv = tnock(t, REG)
+ srv.get('/foo?write=true').reply(200, doc)
+ srv.put(`/foo/-rev/${REV}`, postEdit).reply(200)
+ srv.get('/foo?write=true').reply(200, postEdit)
+ srv.delete(`/foo/-/foo-1.0.1.tgz/-rev/${REV}`).reply(200)
+ return unpub('foo@1.0.1', OPTS).then(() => {
+ t.ok(true, 'foo was unpublished')
+ })
+})
+
+test('404 considered a success', t => {
+ const srv = tnock(t, REG)
+ srv.get('/foo?write=true').reply(404)
+ return unpub('foo', OPTS).then(() => {
+ t.ok(true, 'foo was unpublished')
+ })
+})
+
+test('non-404 errors', t => {
+ const srv = tnock(t, REG)
+ srv.get('/foo?write=true').reply(500)
+ return unpub('foo', OPTS).then(
+ () => { throw new Error('should not have succeeded') },
+ err => { t.equal(err.code, 'E500', 'got right error from server') }
+ )
+})
+
+test('packument with missing versions unpublishes whole thing', t => {
+ const doc = {
+ _id: 'foo',
+ _rev: REV,
+ name: 'foo',
+ 'dist-tags': {
+ latest: '1.0.0'
+ }
+ }
+ const srv = tnock(t, REG)
+ srv.get('/foo?write=true').reply(200, doc)
+ srv.delete(`/foo/-rev/${REV}`).reply(201)
+ return unpub('foo@1.0.0', OPTS).then(() => {
+ t.ok(true, 'foo was unpublished')
+ })
+})
+
+test('packument with missing specific version assumed unpublished', t => {
+ const doc = {
+ _id: 'foo',
+ _rev: REV,
+ name: 'foo',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'foo',
+ dist: {
+ tarball: `${REG}/foo/-/foo-1.0.0.tgz`
+ }
+ }
+ }
+ }
+ const srv = tnock(t, REG)
+ srv.get('/foo?write=true').reply(200, doc)
+ return unpub('foo@1.0.1', OPTS).then(() => {
+ t.ok(true, 'foo was unpublished')
+ })
+})
+
+test('unpublish specific version without dist-tag update', t => {
+ const doc = {
+ _id: 'foo',
+ _rev: REV,
+ _revisions: [1, 2, 3],
+ _attachments: [1, 2, 3],
+ name: 'foo',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'foo',
+ dist: {
+ tarball: `${REG}/foo/-/foo-1.0.0.tgz`
+ }
+ },
+ '1.0.1': {
+ name: 'foo',
+ dist: {
+ tarball: `${REG}/foo/-/foo-1.0.1.tgz`
+ }
+ }
+ }
+ }
+ const postEdit = {
+ _id: 'foo',
+ _rev: REV,
+ name: 'foo',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'foo',
+ dist: {
+ tarball: `${REG}/foo/-/foo-1.0.0.tgz`
+ }
+ }
+ }
+ }
+ const srv = tnock(t, REG)
+ srv.get('/foo?write=true').reply(200, doc)
+ srv.put(`/foo/-rev/${REV}`, postEdit).reply(200)
+ srv.get('/foo?write=true').reply(200, postEdit)
+ srv.delete(`/foo/-/foo-1.0.1.tgz/-rev/${REV}`).reply(200)
+ return unpub('foo@1.0.1', OPTS).then(() => {
+ t.ok(true, 'foo was unpublished')
+ })
+})