mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-30 18:46:01 +01:00
parseFloat scores
This commit is contained in:
@@ -167,11 +167,27 @@ module.exports = function (redisClient, module) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
module.sortedSetsScore = function (keys, value, callback) {
|
module.sortedSetsScore = function (keys, value, callback) {
|
||||||
helpers.execKeysValue(redisClient, 'batch', 'zscore', keys, value, callback);
|
helpers.execKeysValue(redisClient, 'batch', 'zscore', keys, value, function (err, scores) {
|
||||||
|
if (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
scores = scores.map(function (d) {
|
||||||
|
return d === null ? d : parseFloat(d);
|
||||||
|
});
|
||||||
|
callback(null, scores);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
module.sortedSetScores = function (key, values, callback) {
|
module.sortedSetScores = function (key, values, callback) {
|
||||||
helpers.execKeyValues(redisClient, 'batch', 'zscore', key, values, callback);
|
helpers.execKeyValues(redisClient, 'batch', 'zscore', key, values, function (err, scores) {
|
||||||
|
if (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
scores = scores.map(function (d) {
|
||||||
|
return d === null ? d : parseFloat(d);
|
||||||
|
});
|
||||||
|
callback(null, scores);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
module.isSortedSetMember = function (key, value, callback) {
|
module.isSortedSetMember = function (key, value, callback) {
|
||||||
|
|||||||
@@ -465,7 +465,7 @@ describe('Sorted Set methods', function () {
|
|||||||
db.sortedSetScore('sortedSetTest1', 'value2', function (err, score) {
|
db.sortedSetScore('sortedSetTest1', 'value2', function (err, score) {
|
||||||
assert.equal(err, null);
|
assert.equal(err, null);
|
||||||
assert.equal(arguments.length, 2);
|
assert.equal(arguments.length, 2);
|
||||||
assert.equal(score, 1.2);
|
assert.strictEqual(score, 1.2);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -515,28 +515,37 @@ describe('Sorted Set methods', function () {
|
|||||||
it('should return 0 if score is 0', function (done) {
|
it('should return 0 if score is 0', function (done) {
|
||||||
db.sortedSetScores('zeroScore', ['value1'], function (err, scores) {
|
db.sortedSetScores('zeroScore', ['value1'], function (err, scores) {
|
||||||
assert.ifError(err);
|
assert.ifError(err);
|
||||||
assert.equal(0, scores[0]);
|
assert.strictEqual(0, scores[0]);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return the scores of value in sorted sets', function (done) {
|
it('should return the scores of value in sorted sets', function (done) {
|
||||||
db.sortedSetScores('sortedSetTest1', ['value2', 'value1', 'doesnotexist'], function (err, scores) {
|
db.sortedSetScores('sortedSetTest1', ['value2', 'value1', 'doesnotexist'], function (err, scores) {
|
||||||
assert.equal(err, null);
|
assert.ifError(err);
|
||||||
assert.equal(arguments.length, 2);
|
assert.equal(arguments.length, 2);
|
||||||
assert.deepEqual(scores, [1.2, 1.1, null]);
|
assert.deepStrictEqual(scores, [1.2, 1.1, null]);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return scores even if some values are undefined', function (done) {
|
it('should return scores even if some values are undefined', function (done) {
|
||||||
db.sortedSetScores('sortedSetTest1', ['value2', undefined, 'doesnotexist'], function (err, scores) {
|
db.sortedSetScores('sortedSetTest1', ['value2', undefined, 'doesnotexist'], function (err, scores) {
|
||||||
assert.equal(err, null);
|
assert.ifError(err);
|
||||||
assert.equal(arguments.length, 2);
|
assert.equal(arguments.length, 2);
|
||||||
assert.deepEqual(scores, [1.2, null, null]);
|
assert.deepStrictEqual(scores, [1.2, null, null]);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return scores properly', function (done) {
|
||||||
|
db.sortedSetsScore(['zeroScore', 'sortedSetTest1', 'doesnotexist'], 'value1', function (err, scores) {
|
||||||
|
assert.ifError(err);
|
||||||
|
assert.equal(arguments.length, 2);
|
||||||
|
assert.deepStrictEqual(scores, [0, 1.1, null]);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('isSortedSetMember()', function () {
|
describe('isSortedSetMember()', function () {
|
||||||
@@ -775,7 +784,7 @@ describe('Sorted Set methods', function () {
|
|||||||
assert.equal(arguments.length, 1);
|
assert.equal(arguments.length, 1);
|
||||||
db.sortedSetsScore(['sorted4', 'sorted5'], 'value1', function (err, scores) {
|
db.sortedSetsScore(['sorted4', 'sorted5'], 'value1', function (err, scores) {
|
||||||
assert.equal(err, null);
|
assert.equal(err, null);
|
||||||
assert.deepEqual(scores, [null, null]);
|
assert.deepStrictEqual(scores, [null, null]);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user