Merge pull request #3259 from strongloop/backport/fix-verifyHref-uid
Fix User.verify to convert uid to string
This commit is contained in:
commit
989c3bba1f
|
@ -430,7 +430,7 @@ module.exports = function(User) {
|
||||||
displayPort +
|
displayPort +
|
||||||
urlPath +
|
urlPath +
|
||||||
'?' + qs.stringify({
|
'?' + qs.stringify({
|
||||||
uid: options.user[pkName],
|
uid: '' + options.user[pkName],
|
||||||
redirect: options.redirect,
|
redirect: options.redirect,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1428,6 +1428,53 @@ describe('User', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('converts uid value to string', function(done) {
|
||||||
|
var idString = '58be263abc88dd483956030a';
|
||||||
|
var actualVerifyHref;
|
||||||
|
|
||||||
|
User.afterRemote('create', function(ctx, user, next) {
|
||||||
|
assert(user, 'afterRemote should include result');
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
type: 'email',
|
||||||
|
to: user.email,
|
||||||
|
from: 'noreply@myapp.org',
|
||||||
|
redirect: '/',
|
||||||
|
protocol: ctx.req.protocol,
|
||||||
|
host: ctx.req.get('host'),
|
||||||
|
templateFn: function(options, cb) {
|
||||||
|
actualVerifyHref = options.verifyHref;
|
||||||
|
cb(null, 'dummy body');
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// replace the string id with an object
|
||||||
|
// TODO: find a better way to do this
|
||||||
|
Object.defineProperty(user, 'pk', {
|
||||||
|
get: function() { return this.__data.pk; },
|
||||||
|
set: function(value) { this.__data.pk = value; },
|
||||||
|
});
|
||||||
|
user.pk = {toString: function() { return idString; }};
|
||||||
|
|
||||||
|
user.verify(options, function(err, result) {
|
||||||
|
expect(result.uid).to.be.an('object');
|
||||||
|
expect(result.uid.toString()).to.equal(idString);
|
||||||
|
var parsed = url.parse(actualVerifyHref, true);
|
||||||
|
expect(parsed.query.uid, 'uid query field').to.eql(idString);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
request(app)
|
||||||
|
.post('/test-users')
|
||||||
|
.expect('Content-Type', /json/)
|
||||||
|
.expect(200)
|
||||||
|
.send({email: 'bar@bat.com', password: 'bar', pk: idString})
|
||||||
|
.end(function(err, res) {
|
||||||
|
if (err) return done(err);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('Verify a user\'s email address with custom token generator', function(done) {
|
it('Verify a user\'s email address with custom token generator', function(done) {
|
||||||
User.afterRemote('create', function(ctx, user, next) {
|
User.afterRemote('create', function(ctx, user, next) {
|
||||||
assert(user, 'afterRemote should include result');
|
assert(user, 'afterRemote should include result');
|
||||||
|
|
Loading…
Reference in New Issue