You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

163 lines
4.0 KiB

var mr = require('npm-registry-mock')
var test = require('tap').test
var common = require('../common-tap.js')
var server
var EXEC_OPTS = {}
var jashkenas = {
name: 'jashkenas',
email: 'jashkenas@gmail.com'
}
var othiym23 = {
name: 'othiym23',
email: 'forrest@npmjs.com'
}
var bcoe = {
name: 'bcoe',
email: 'ben@npmjs.com'
}
function shrt (user) {
return user.name + ' <' + user.email + '>\n'
}
function mocks (server) {
server.get('/-/user/org.couchdb.user:othiym23')
.many().reply(200, othiym23)
// test 1
server.get('/underscore')
.reply(200, { _id: 'underscore', _rev: 1, maintainers: [jashkenas] })
server.put(
'/underscore/-rev/1',
{ _id: 'underscore', _rev: 1, maintainers: [jashkenas, othiym23] },
{}
).reply(200, { _id: 'underscore', _rev: 2, maintainers: [jashkenas, othiym23] })
// test 2
server.get('/@xxx%2fscoped')
.reply(200, { _id: '@xxx/scoped', _rev: 1, maintainers: [bcoe] })
server.put(
'/@xxx%2fscoped/-rev/1',
{ _id: '@xxx/scoped', _rev: 1, maintainers: [bcoe, othiym23] },
{}
).reply(200, { _id: '@xxx/scoped', _rev: 2, maintainers: [bcoe, othiym23] })
// test 3
server.get('/underscore')
.reply(200, { _id: 'underscore', _rev: 2, maintainers: [jashkenas, othiym23] })
// test 4
server.get('/underscore')
.reply(200, { _id: 'underscore', _rev: 2, maintainers: [jashkenas, othiym23] })
server.put(
'/underscore/-rev/2',
{ _id: 'underscore', _rev: 2, maintainers: [jashkenas] },
{}
).reply(200, { _id: 'underscore', _rev: 3, maintainers: [jashkenas] })
}
test('setup', function (t) {
common.npm(
[
'--loglevel', 'silent',
'cache', 'clean'
],
EXEC_OPTS,
function (err, code) {
t.ifError(err, 'npm cache clean ran without error')
t.notOk(code, 'npm cache clean exited cleanly')
mr({ port: common.port, plugin: mocks }, function (er, s) {
server = s
t.end()
})
}
)
})
test('npm owner add', function (t) {
common.npm(
[
'--loglevel', 'silent',
'--registry', common.registry,
'owner', 'add', 'othiym23', 'underscore'
],
EXEC_OPTS,
function (err, code, stdout, stderr) {
t.ifError(err, 'npm owner add ran without error')
t.notOk(code, 'npm owner add exited cleanly')
t.notOk(stderr, 'npm owner add ran silently')
t.equal(stdout, '+ othiym23 (underscore)\n', 'got expected add output')
t.end()
}
)
})
test('npm owner add (scoped)', function (t) {
common.npm(
[
'--loglevel', 'silent',
'--registry', common.registry,
'owner', 'add', 'othiym23', '@xxx/scoped'
],
EXEC_OPTS,
function (err, code, stdout, stderr) {
t.ifError(err, 'npm owner add (scoped) ran without error')
t.notOk(code, 'npm owner add (scoped) exited cleanly')
t.notOk(stderr, 'npm owner add (scoped) ran silently')
t.equal(stdout, '+ othiym23 (@xxx/scoped)\n', 'got expected scoped add output')
t.end()
}
)
})
test('npm owner ls', function (t) {
common.npm(
[
'--loglevel', 'silent',
'--registry', common.registry,
'owner', 'ls', 'underscore'
],
EXEC_OPTS,
function (err, code, stdout, stderr) {
t.ifError(err, 'npm owner ls ran without error')
t.notOk(code, 'npm owner ls exited cleanly')
t.notOk(stderr, 'npm owner ls ran silently')
t.equal(stdout, shrt(jashkenas) + shrt(othiym23), 'got expected ls output')
t.end()
}
)
})
test('npm owner rm', function (t) {
common.npm(
[
'--loglevel', 'silent',
'--registry', common.registry,
'owner', 'rm', 'othiym23', 'underscore'
],
EXEC_OPTS,
function (err, code, stdout, stderr) {
t.ifError(err, 'npm owner rm ran without error')
t.notOk(code, 'npm owner rm exited cleanly')
t.notOk(stderr, 'npm owner rm ran silently')
t.equal(stdout, '- othiym23 (underscore)\n', 'got expected rm output')
t.end()
}
)
})
test('cleanup', function (t) {
server.close()
t.end()
})