authorgravatar for saiansh2525@gmail.comYash Singh <saiansh2525@gmail.com> 2026-09-26 15:09:03-05:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-09-26 15:09:03-05:00
logd110f9867041f0466bed9b032c15efcfcefcbfc5
treec3aeecf8112e1dc576bc686d65f6f89b6abd5041
parentdd582dee36976ccfd2a896cf50c3ee957ca7b9be
signature Signed by PGP key B5690EEEBB952194

test(usage): assert contract mismatch details (#13861)


1 files changed, 8 insertions(+), 2 deletions(-)

packages/shared/src/usageMerge.test.ts+8-2
...@@ -433,7 +433,7 @@ describe("mergeUsage", () => {...@@ -433,7 +433,7 @@ describe("mergeUsage", () => {
433 const merged = mergeUsage([environment("env-a", decoded)], USAGE_CONTRACT_VERSION);433 const merged = mergeUsage([environment("env-a", decoded)], USAGE_CONTRACT_VERSION);
434 expect(merged.costUsd).toBe(10);434 expect(merged.costUsd).toBe(10);
435 expect(merged.totalTokens).toBe(1160);435 expect(merged.totalTokens).toBe(1160);
436 expect(merged.staleEnvironments).toEqual([]);436 expect(merged.contractMismatches).toEqual([]);
437 });437 });
438438
439 it("normalizes model names during decoding before grouping usage", () => {439 it("normalizes model names during decoding before grouping usage", () => {
...@@ -479,7 +479,13 @@ describe("mergeUsage", () => {...@@ -479,7 +479,13 @@ describe("mergeUsage", () => {
479 );479 );
480 const merged = mergeUsage([environment("env-a", decoded)], USAGE_CONTRACT_VERSION);480 const merged = mergeUsage([environment("env-a", decoded)], USAGE_CONTRACT_VERSION);
481 expect(merged.costUsd).toBe(0);481 expect(merged.costUsd).toBe(0);
482 expect(merged.staleEnvironments).toEqual(["env-a"]);482 expect(merged.contractMismatches).toEqual([
483 {
484 environmentId: "env-a",
485 direction: "clientBehind",
486 contractVersion: USAGE_CONTRACT_VERSION + 1,
487 },
488 ]);
483 });489 });
484490
485 it("derives provider shares and cost quality", () => {491 it("derives provider shares and cost quality", () => {