Skip to content

Commit ac1d5da

Browse files
committed
fix: uniqueCount handles falsey keyparts properly
1 parent 38e55c9 commit ac1d5da

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

keys.test.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,29 @@ Deno.test({
148148
},
149149
});
150150

151+
Deno.test({
152+
name:
153+
"uniqueCount - returns a count when there is only a single subkey that is falsy",
154+
async fn() {
155+
const kv = await setup();
156+
const res = await kv.atomic()
157+
.set(["a"], "a")
158+
.set(["a", "b", ""], "c")
159+
.set(["a", "h"], "h")
160+
.set(["e"], "e")
161+
.commit();
162+
assert(res.ok);
163+
164+
const actual = await uniqueCount(kv, ["a"]);
165+
166+
assertEquals(actual, [
167+
{ key: ["a", "b"], count: 1 },
168+
{ key: ["a", "h"], count: 0 },
169+
]);
170+
return teardown();
171+
},
172+
});
173+
151174
Deno.test({
152175
name: "uniqueCount - returns a list of unique sub-keys from query",
153176
async fn() {

keys.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ export async function uniqueCount(
543543
if (!prefixCounts.has(part)) {
544544
prefixCounts.set(part, { count: 0 });
545545
}
546-
if (next) {
546+
if (next != null) {
547547
const count = prefixCounts.get(part)!;
548548
if (next === BLOB_KEY) {
549549
count.isBlob = true;

0 commit comments

Comments
 (0)