2 var path = require('path')
3 var mkdirp = require('mkdirp')
4 var rimraf = require('rimraf')
5 var mr = require('npm-registry-mock')
6 var semver = require('semver')
8 var test = require('tap').test
9 var common = require('../common-tap.js')
11 var pkg = path.resolve(__dirname, 'deprecate')
16 '_rev': '19-d458a706de1740662cd7728d7d7ddf07',
19 'modified': '2015-02-13T07:33:58.120Z',
20 'created': '2014-03-16T20:52:52.236Z',
21 '0.0.0': '2014-03-16T20:52:52.236Z',
22 '0.0.1': '2014-03-16T21:12:33.393Z',
23 '0.0.2': '2014-03-16T21:15:25.430Z'
33 'description': 'Restartable error handling system',
37 test('setup', function (t) {
38 mr({port: common.port}, function (err, s) {
39 t.ifError(err, 'registry mocked successfully')
46 test('npm deprecate an unscoped package', function (t) {
47 var deprecated = JSON.parse(JSON.stringify(cache))
48 deprecated.versions = {
50 '0.0.1': { deprecated: 'make it dead' },
53 server.get('/cond?write=true').reply(200, cache)
54 server.put('/cond', deprecated).reply(201, { deprecated: true })
59 '--registry', common.registry,
60 '--loglevel', 'silent'
62 function (er, code, stdout, stderr) {
63 t.ifError(er, 'npm deprecate')
64 t.equal(stderr, '', 'no error output')
65 t.equal(code, 0, 'exited OK')
70 test('npm deprecate a scoped package', function (t) {
71 var cacheCopy = JSON.parse(JSON.stringify(cache))
72 cacheCopy.name = '@scope/cond'
73 cacheCopy._id = '@scope/cond'
74 var deprecated = JSON.parse(JSON.stringify(cacheCopy))
75 deprecated.versions = {
77 '0.0.1': { deprecated: 'make it dead' },
80 server.get('/@scope%2fcond?write=true').reply(200, cacheCopy)
81 server.put('/@scope%2fcond', deprecated).reply(201, { deprecated: true })
86 '--registry', common.registry,
87 '--loglevel', 'silent'
89 function (er, code, stdout, stderr) {
90 t.ifError(er, 'npm deprecate')
91 t.equal(stderr, '', 'no error output')
92 t.equal(code, 0, 'exited OK')
97 test('npm deprecate semver range', function (t) {
98 var deprecated = JSON.parse(JSON.stringify(cache))
99 deprecated.versions = {
100 '0.0.0': { deprecated: 'make it dead' },
101 '0.0.1': { deprecated: 'make it dead' },
104 server.get('/cond?write=true').reply(200, cache)
105 server.put('/cond', deprecated).reply(201, { deprecated: true })
110 '--registry', common.registry,
111 '--loglevel', 'silent'
113 function (er, code, stdout, stderr) {
114 t.ifError(er, 'npm deprecate')
115 t.equal(stderr, '', 'no error output')
116 t.equal(code, 0, 'exited OK')
121 test('npm deprecate bad semver range', function (t) {
126 '--registry', common.registry
128 function (er, code, stdout, stderr) {
129 t.equal(code, 1, 'errored')
130 t.match(stderr, /invalid version range/, 'bad semver')
135 test('npm deprecate a package with no semver range', function (t) {
136 var deprecated = JSON.parse(JSON.stringify(cache))
137 deprecated.versions = {
138 '0.0.0': { deprecated: 'make it dead' },
139 '0.0.1': { deprecated: 'make it dead' },
140 '0.0.2': { deprecated: 'make it dead' }
142 server.get('/cond?write=true').reply(200, cache)
143 server.put('/cond', deprecated).reply(201, { deprecated: true })
148 '--registry', common.registry,
149 '--loglevel', 'silent'
151 function (er, code, stdout, stderr) {
152 t.ifError(er, 'npm deprecate')
153 t.equal(stderr, '', 'no error output')
154 t.equal(code, 0, 'exited OK')
159 test('cleanup', function (t) {