From b945e3c80efe254b648fd68eb100e2dfbe27ca4f Mon Sep 17 00:00:00 2001 From: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com> Date: Thu, 27 Aug 2026 02:17:21 -0300 Subject: [PATCH] test(video): preserve daily quota lockout semantics --- .../chat-daily-quota-model-retention.test.ts | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/tests/unit/chat-daily-quota-model-retention.test.ts b/tests/unit/chat-daily-quota-model-retention.test.ts index e6f594ebf2..9b1630e068 100644 --- a/tests/unit/chat-daily-quota-model-retention.test.ts +++ b/tests/unit/chat-daily-quota-model-retention.test.ts @@ -1,34 +1,41 @@ import assert from "node:assert/strict"; import test from "node:test"; -import { resolveDailyQuotaLockoutModel } from "../../src/sse/handlers/chatPredicates.ts"; +import { resolveDailyQuotaModelViews } from "../../src/sse/handlers/chatPredicates.ts"; -test("daily quota model uses the upstream model token for ordinary requests", () => { - assert.equal( - resolveDailyQuotaLockoutModel( +test("daily quota model uses the upstream model token for ordinary operational and retained views", () => { + assert.deepEqual( + resolveDailyQuotaModelViews( "You have exceeded today's quota for model moonshotai/Kimi-K2.5, try tomorrow", "Kimi-K2.5", false ), - "moonshotai/Kimi-K2.5" + { + operationalModel: "moonshotai/Kimi-K2.5", + retainedModel: "moonshotai/Kimi-K2.5", + } ); }); -test("daily quota model never persists a transcript echo for a sensitive video request", () => { +test("daily quota keeps the raw operational key but redacts its retained sensitive view", () => { const transcriptSentinel = "PRIVATE_DAILY_QUOTA_TRANSCRIPT_SENTINEL"; - const resolved = resolveDailyQuotaLockoutModel( + const views = resolveDailyQuotaModelViews( `You have exceeded today's quota for model ${transcriptSentinel}, try tomorrow`, "server-resolved-model", true ); - assert.equal(resolved, "server-resolved-model"); - assert.equal(resolved.includes(transcriptSentinel), false); + assert.equal(views.operationalModel, transcriptSentinel); + assert.equal(views.retainedModel, "[omitted: video transcript]"); + assert.equal(views.retainedModel.includes(transcriptSentinel), false); }); test("daily quota model falls back to the server-resolved model when no token is present", () => { - assert.equal( - resolveDailyQuotaLockoutModel("daily quota exhausted", "server-resolved-model", false), - "server-resolved-model" + assert.deepEqual( + resolveDailyQuotaModelViews("daily quota exhausted", "server-resolved-model", true), + { + operationalModel: "server-resolved-model", + retainedModel: "server-resolved-model", + } ); });