From 63a98f89ffee516749664f051fc68c8f7b49d788 Mon Sep 17 00:00:00 2001 From: 404oops Date: Thu, 5 Nov 2026 14:09:39 +0100 Subject: [PATCH] test(metering): find the actor key in any meterIncr argument The buffered write now passes the claim key too, which moves the counter key's position. The image provider's write-ordering test matched it by index and stopped seeing the write. Co-Authored-By: Claude Opus 5.5 --- .../ai-image/providers/openai/OpenAiImageProvider.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/backend/drivers/ai-image/providers/openai/OpenAiImageProvider.test.ts b/src/backend/drivers/ai-image/providers/openai/OpenAiImageProvider.test.ts index 5e34462a9..612ffb59b 100644 --- a/src/backend/drivers/ai-image/providers/openai/OpenAiImageProvider.test.ts +++ b/src/backend/drivers/ai-image/providers/openai/OpenAiImageProvider.test.ts @@ -253,7 +253,8 @@ describe('OpenAiImageProvider.generate credit gate', () => { }); let blocked = false; vi.spyOn(redis, 'meterIncr').mockImplementation(async (...args) => { - if (!blocked && args[5].includes(`:actor:${actor.user!.uuid}:`)) { + const actorKey = `:actor:${actor.user!.uuid}:`; + if (!blocked && args.some((arg) => arg.includes(actorKey))) { blocked = true; await held; }