mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-03-18 02:20:49 +01:00
perf: switch to set, remove parseFloat in redis
add test to cover float
This commit is contained in:
@@ -301,7 +301,7 @@ module.exports = function (module) {
|
||||
|
||||
const returnData = [];
|
||||
let done;
|
||||
const seen = Object.create(null);
|
||||
const seen = new Set();
|
||||
do {
|
||||
/* eslint-disable no-await-in-loop */
|
||||
const res = await module.client.zScan(params.key, cursor, { MATCH: params.match, COUNT: 5000 });
|
||||
@@ -310,11 +310,11 @@ module.exports = function (module) {
|
||||
|
||||
for (let i = 0; i < res.members.length; i ++) {
|
||||
const item = res.members[i];
|
||||
if (!seen[item.value]) {
|
||||
seen[item.value] = 1;
|
||||
if (!seen.has(item.value)) {
|
||||
seen.add(item.value);
|
||||
|
||||
if (params.withScores) {
|
||||
returnData.push({ value: item.value, score: parseFloat(item.score) });
|
||||
returnData.push({ value: item.value, score: item.score });
|
||||
} else {
|
||||
returnData.push(item.value);
|
||||
}
|
||||
|
||||
@@ -93,6 +93,22 @@ NUMERIC)-- WsPn&query[cid]=-1&parentCid=0&selectedCids[]=-1&privilege=topics:rea
|
||||
});
|
||||
assert.strictEqual(data.length, 0);
|
||||
});
|
||||
|
||||
it('should handle floating point scores', async () => {
|
||||
await db.sortedSetAdd('scanzset6', [1.5, 2.5, 3.5, 4.5, 5.5, 6.5], ['aaab{', 'bbbb', 'bbcb', 'ddb', 'dddd', 'adb']);
|
||||
const data = await db.getSortedSetScan({
|
||||
key: 'scanzset6',
|
||||
match: '*b',
|
||||
withScores: true,
|
||||
});
|
||||
data.sort((a, b) => b.score - a.score);
|
||||
assert.deepStrictEqual(data, [
|
||||
{ value: 'adb', score: 6.5 },
|
||||
{ value: 'ddb', score: 4.5 },
|
||||
{ value: 'bbcb', score: 3.5 },
|
||||
{ value: 'bbbb', score: 2.5 },
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('sortedSetAdd()', () => {
|
||||
|
||||
Reference in New Issue
Block a user