mirror of https://github.com/lukechilds/node.git
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.
58 lines
1.3 KiB
58 lines
1.3 KiB
var tap = require('tap')
|
|
|
|
var server = require('./lib/server.js')
|
|
var common = require('./lib/common.js')
|
|
var client = common.freshClient()
|
|
|
|
var password = '%1234@asdf%'
|
|
var username = 'username'
|
|
var email = 'i@izs.me'
|
|
var userdata = {
|
|
name: username,
|
|
email: email,
|
|
_id: 'org.couchdb.user:username',
|
|
type: 'user',
|
|
roles: [],
|
|
date: '2012-06-07T04:11:21.591Z'
|
|
}
|
|
|
|
var SD = require('string_decoder').StringDecoder
|
|
var decoder = new SD()
|
|
|
|
tap.test('create new user account', function (t) {
|
|
var auth = {
|
|
username: username,
|
|
password: password,
|
|
email: email
|
|
}
|
|
var params = { auth: auth }
|
|
|
|
server.expect('/registry/_design/app/_rewrite/-/user/org.couchdb.user:username', function (req, res) {
|
|
t.equal(req.method, 'PUT')
|
|
var b = ''
|
|
req.on('data', function (d) {
|
|
b += decoder.write(d)
|
|
})
|
|
|
|
req.on('end', function () {
|
|
var o = JSON.parse(b)
|
|
userdata.password = password
|
|
userdata.date = o.date
|
|
t.deepEqual(o, userdata)
|
|
|
|
res.statusCode = 201
|
|
res.json(auth)
|
|
})
|
|
})
|
|
|
|
client.adduser(
|
|
'http://localhost:1337/registry/_design/app/_rewrite',
|
|
params,
|
|
function (er, data) {
|
|
if (er) throw er
|
|
t.deepEqual(data, auth, 'received expected auth data')
|
|
server.close()
|
|
t.end()
|
|
}
|
|
)
|
|
})
|
|
|