diff --git a/packages/app/src/components/session/session-context-metrics.test.ts b/packages/app/src/components/session/session-context-metrics.test.ts index e90df9a94..0e109a71b 100644 --- a/packages/app/src/components/session/session-context-metrics.test.ts +++ b/packages/app/src/components/session/session-context-metrics.test.ts @@ -91,4 +91,11 @@ describe("getSessionContextMetrics", () => { expect(two.context?.message.id).toBe("a2") expect(two.totalCost).toBe(1) }) + + test("returns empty metrics when inputs are undefined", () => { + const metrics = getSessionContextMetrics(undefined, undefined) + + expect(metrics.totalCost).toBe(0) + expect(metrics.context).toBeUndefined() + }) }) diff --git a/packages/app/src/components/session/session-context-metrics.ts b/packages/app/src/components/session/session-context-metrics.ts index 357205afb..0789b05f1 100644 --- a/packages/app/src/components/session/session-context-metrics.ts +++ b/packages/app/src/components/session/session-context-metrics.ts @@ -47,7 +47,7 @@ const lastAssistantWithTokens = (messages: Message[]) => { } } -const build = (messages: Message[], providers: Provider[]): Metrics => { +const build = (messages: Message[] = [], providers: Provider[] = []): Metrics => { const totalCost = messages.reduce((sum, msg) => sum + (msg.role === "assistant" ? msg.cost : 0), 0) const message = lastAssistantWithTokens(messages) if (!message) return { totalCost, context: undefined } @@ -77,6 +77,6 @@ const build = (messages: Message[], providers: Provider[]): Metrics => { } } -export function getSessionContextMetrics(messages: Message[], providers: Provider[]) { +export function getSessionContextMetrics(messages: Message[] = [], providers: Provider[] = []) { return build(messages, providers) }