multiple test fixes

v1.18.x
barisusakli 9 years ago
parent 7e6e5f771c
commit 5d6e2ad083

@ -171,6 +171,9 @@
}; };
module.info = function (db, callback) { module.info = function (db, callback) {
if (!db) {
return callback();
}
async.parallel({ async.parallel({
serverStatus: function (next) { serverStatus: function (next) {
db.command({'serverStatus': 1}, next); db.command({'serverStatus': 1}, next);

@ -5,7 +5,7 @@ module.exports = function (db, module) {
module.setObject = function (key, data, callback) { module.setObject = function (key, data, callback) {
callback = callback || helpers.noop; callback = callback || helpers.noop;
if (!key) { if (!key || !data) {
return callback(); return callback();
} }

@ -127,6 +127,9 @@
}; };
module.info = function (cxn, callback) { module.info = function (cxn, callback) {
if (!cxn) {
return callback();
}
cxn.info(function (err, data) { cxn.info(function (err, data) {
if (err) { if (err) {
return callback(err); return callback(err);

@ -6,6 +6,14 @@ module.exports = function (redisClient, module) {
module.setObject = function (key, data, callback) { module.setObject = function (key, data, callback) {
callback = callback || function () {}; callback = callback || function () {};
if (!key || !data) {
return callback();
}
Object.keys(data).forEach(function (key) {
if (data[key] === undefined) {
delete data[key];
}
});
redisClient.hmset(key, data, function (err) { redisClient.hmset(key, data, function (err) {
callback(err); callback(err);
}); });

@ -51,6 +51,9 @@ module.exports = function (redisClient, module) {
module.sortedSetRemove = function (key, value, callback) { module.sortedSetRemove = function (key, value, callback) {
callback = callback || function () {}; callback = callback || function () {};
if (!value) {
return callback();
}
if (!Array.isArray(value)) { if (!Array.isArray(value)) {
value = [value]; value = [value];
} }

@ -107,7 +107,7 @@ module.exports = function (Plugins) {
if (err) { if (err) {
return callback(err); return callback(err);
} }
winston.info('[plugins] ' + stdout); winston.verbose('[plugins] ' + stdout);
callback(); callback();
}); });
} }

@ -28,7 +28,7 @@ module.exports = function (User) {
}; };
User.getUsersCSV = function (callback) { User.getUsersCSV = function (callback) {
winston.info('[user/getUsersCSV] Compiling User CSV data'); winston.verbose('[user/getUsersCSV] Compiling User CSV data');
var csvContent = ''; var csvContent = '';
var uids; var uids;
async.waterfall([ async.waterfall([

@ -15,6 +15,7 @@ module.exports = function (User) {
if (!parseInt(uid, 10)) { if (!parseInt(uid, 10)) {
return callback(new Error('[[error:invalid-uid]]')); return callback(new Error('[[error:invalid-uid]]'));
} }
async.waterfall([ async.waterfall([
function (next) { function (next) {
deletePosts(callerUid, uid, next); deletePosts(callerUid, uid, next);
@ -48,6 +49,12 @@ module.exports = function (User) {
var userData; var userData;
async.waterfall([ async.waterfall([
function (next) { function (next) {
User.exists(uid, next);
},
function (exists, next) {
if (!exists) {
return callback();
}
User.getUserFields(uid, ['username', 'userslug', 'fullname', 'email'], next); User.getUserFields(uid, ['username', 'userslug', 'fullname', 'email'], next);
}, },
function (_userData, next) { function (_userData, next) {

@ -1,6 +1,6 @@
"use strict"; "use strict";
var async = require('async'); var async = require('async');
var winston = require('winston'); var winston = require('winston');
var nconf = require('nconf'); var nconf = require('nconf');
@ -57,7 +57,7 @@ var utils = require('../../public/src/utils');
if (err) { if (err) {
winston.error('[user/jobs] Could not send digests (' + interval + '): ' + err.message); winston.error('[user/jobs] Could not send digests (' + interval + '): ' + err.message);
} else { } else {
winston.info('[user/jobs] Digest (' + interval + ') scheduling completed. ' + subscribers.length + ' email(s) sent.'); winston.verbose('[user/jobs] Digest (' + interval + ') scheduling completed. ' + subscribers.length + ' email(s) sent.');
} }
callback(err); callback(err);
@ -65,25 +65,27 @@ var utils = require('../../public/src/utils');
}; };
Digest.getSubscribers = function (interval, callback) { Digest.getSubscribers = function (interval, callback) {
db.getSortedSetRange('digest:' + interval + ':uids', 0, -1, function (err, subscribers) { async.waterfall([
if (err) { function (next) {
return callback(err); db.getSortedSetRange('digest:' + interval + ':uids', 0, -1, next);
},
function (subscribers, next) {
plugins.fireHook('filter:digest.subscribers', {
interval: interval,
subscribers: subscribers
}, next);
},
function (results, next) {
next(null, results.subscribers);
} }
], callback);
plugins.fireHook('filter:digest.subscribers', {
interval: interval,
subscribers: subscribers
}, function (err, returnData) {
callback(err, returnData.subscribers);
});
});
}; };
Digest.send = function (data, callback) { Digest.send = function (data, callback) {
if (!data || !data.subscribers || !data.subscribers.length) { if (!data || !data.subscribers || !data.subscribers.length) {
return callback(); return callback();
} }
var now = new Date(); var now = new Date();
async.waterfall([ async.waterfall([
function (next) { function (next) {

@ -24,6 +24,24 @@ describe('Hash methods', function () {
done(); done();
}); });
}); });
it('should do nothing if key is falsy', function (done) {
db.setObject('', {foo: 1, derp: 2}, function (err) {
assert.ifError(err);
done();
});
});
it('should do nothing if data is falsy', function (done) {
db.setObject('falsy', null, function (err) {
assert.ifError(err);
db.exists('falsy', function (err, exists) {
assert.ifError(err);
assert.equal(exists, false);
done();
});
});
});
}); });
describe('setObjectField()', function () { describe('setObjectField()', function () {

@ -14,15 +14,16 @@ var helpers = require('./helpers');
describe('Messaging Library', function () { describe('Messaging Library', function () {
var testUids; //var testUids;
var fooUid; var fooUid;
var bazUid; var bazUid;
var herpUid; var herpUid;
var roomId; var roomId;
before(function (done) { before(function (done) {
Groups.resetCache();
// Create 3 users: 1 admin, 2 regular // Create 3 users: 1 admin, 2 regular
async.parallel([ async.series([
async.apply(User.create, { username: 'foo', password: 'barbar' }), // admin async.apply(User.create, { username: 'foo', password: 'barbar' }), // admin
async.apply(User.create, { username: 'baz', password: 'quuxquux' }), // restricted user async.apply(User.create, { username: 'baz', password: 'quuxquux' }), // restricted user
async.apply(User.create, { username: 'herp', password: 'derpderp' }) // regular user async.apply(User.create, { username: 'herp', password: 'derpderp' }) // regular user
@ -31,36 +32,29 @@ describe('Messaging Library', function () {
return done(err); return done(err);
} }
testUids = uids;
fooUid = uids[0]; fooUid = uids[0];
bazUid = uids[1]; bazUid = uids[1];
herpUid = uids[2]; herpUid = uids[2];
async.parallel([ async.parallel([
async.apply(Groups.join, 'administrators', uids[0]), async.apply(Groups.join, 'administrators', fooUid),
async.apply(User.setSetting, testUids[1], 'restrictChat', '1') async.apply(User.setSetting, bazUid, 'restrictChat', '1')
], done); ], done);
}); });
}); });
describe('.canMessage()', function () { describe('.canMessage()', function () {
it('should not error out', function (done) {
Messaging.canMessageUser(testUids[1], testUids[2], function (err) {
assert.ifError(err);
done();
});
});
it('should allow messages to be sent to an unrestricted user', function (done) { it('should allow messages to be sent to an unrestricted user', function (done) {
Messaging.canMessageUser(testUids[1], testUids[2], function (err) { Messaging.canMessageUser(bazUid, herpUid, function (err) {
assert.ifError(err); assert.ifError(err);
done(); done();
}); });
}); });
it('should NOT allow messages to be sent to a restricted user', function (done) { it('should NOT allow messages to be sent to a restricted user', function (done) {
User.setSetting(testUids[1], 'restrictChat', '1', function () { User.setSetting(bazUid, 'restrictChat', '1', function (err) {
Messaging.canMessageUser(testUids[2], testUids[1], function (err) { assert.ifError(err);
Messaging.canMessageUser(herpUid, bazUid, function (err) {
assert.strictEqual(err.message, '[[error:chat-restricted]]'); assert.strictEqual(err.message, '[[error:chat-restricted]]');
done(); done();
}); });
@ -68,15 +62,15 @@ describe('Messaging Library', function () {
}); });
it('should always allow admins through', function (done) { it('should always allow admins through', function (done) {
Messaging.canMessageUser(testUids[0], testUids[1], function (err) { Messaging.canMessageUser(fooUid, bazUid, function (err) {
assert.ifError(err); assert.ifError(err);
done(); done();
}); });
}); });
it('should allow messages to be sent to a restricted user if restricted user follows sender', function (done) { it('should allow messages to be sent to a restricted user if restricted user follows sender', function (done) {
User.follow(testUids[1], testUids[2], function () { User.follow(bazUid, herpUid, function () {
Messaging.canMessageUser(testUids[2], testUids[1], function (err) { Messaging.canMessageUser(herpUid, bazUid, function (err) {
assert.ifError(err); assert.ifError(err);
done(); done();
}); });

@ -18,6 +18,7 @@ describe('Topic\'s', function () {
var adminUid; var adminUid;
before(function (done) { before(function (done) {
groups.resetCache();
User.create({username: 'admin'}, function (err, uid) { User.create({username: 'admin'}, function (err, uid) {
if (err) { if (err) {
return done(err); return done(err);

@ -573,17 +573,27 @@ describe('User', function () {
}); });
}); });
describe('digests', function () {
it('should send digests', function (done) { var uid;
User.updateDigestSetting(testUid, 'day', function (err) { before(function (done) {
assert.ifError(err); User.create({username: 'digestuser', email: 'test@example.com'}, function (err, _uid) {
User.digest.execute('day', function (err) {
assert.ifError(err); assert.ifError(err);
uid = _uid;
done(); done();
}); });
}); });
});
it('should send digests', function (done) {
User.updateDigestSetting(uid, 'day', function (err) {
assert.ifError(err);
User.digest.execute('day', function (err) {
assert.ifError(err);
done();
});
});
});
});
after(function (done) { after(function (done) {

Loading…
Cancel
Save