Skip to content

Commit 2d89ab9

Browse files
committed
test: cover getRedeemedCodesByUsers discordId chunking path
Add a test that passes 996 discordIds with a single code (chunk size = 999 - 1 - 3 = 995) to exercise the second loop iteration, restoring 100% branch coverage on codeManager.ts. Signed-off-by: Michael Cramer <michael@bigmichi1.de>
1 parent 7c8eec1 commit 2d89ab9

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

src/bot/database/codeManager.test.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,14 @@ describe('getRedeemedCodesByUsers', () => {
511511
'Too many codes provided to getRedeemedCodesByUsers'
512512
);
513513
});
514+
515+
test('chunks large discordIds lists to stay within SQLite param limit', async () => {
516+
await codeManager.addRedeemedCode('CODE1234ABCD', USER_A, 'Success');
517+
// With 1 code: chunkSize = 999 - 1 - 3 = 995. 996 ids forces a second chunk iteration.
518+
const manyIds = [USER_A, ...Array.from({ length: 995 }, (_, i) => `fake-user-${i}`)];
519+
const result = await codeManager.getRedeemedCodesByUsers(['CODE1234ABCD'], manyIds);
520+
expect(result.get(USER_A)?.has('CODE1234ABCD')).toBe(true);
521+
});
514522
});
515523

516524
// ---------------------------------------------------------------------------

0 commit comments

Comments
 (0)