Skip to content

Commit 1bcbe05

Browse files
cuipengfeiclaude
andcommitted
fix(tests): stub getAutoSessionTokenForModel and guard logCopilotRateLimits
- Guard logCopilotRateLimits against null/undefined headers to prevent TypeError when test mocks omit the headers property - Stub getAutoSessionTokenForModel in create-chat-completions and create-responses tests to prevent unintended /models/session fetch that was offsetting fetchMock.mock.calls[] indices and causing response.json/text method-missing failures Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
1 parent 2098831 commit 1bcbe05

3 files changed

Lines changed: 19 additions & 1 deletion

File tree

src/lib/copilot-rate-limit.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,10 @@ export const getCopilotRateLimitUsage = (
7777
}
7878
}
7979

80-
export const logCopilotRateLimits = (headers: HeadersLike): void => {
80+
export const logCopilotRateLimits = (
81+
headers: HeadersLike | null | undefined,
82+
): void => {
83+
if (!headers) return
8184
for (const type of copilotRateLimitTypes) {
8285
const usage = getCopilotRateLimitUsage(headers, type)
8386

tests/create-chat-completions.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010

1111
import type { ChatCompletionsPayload } from "../src/services/copilot/create-chat-completions"
1212

13+
import * as autoSession from "../src/lib/auto-session"
1314
import { getAttachedResponseHeaders } from "../src/lib/response-headers"
1415
import { state } from "../src/lib/state"
1516
import { createChatCompletions } from "../src/services/copilot/create-chat-completions"
@@ -69,6 +70,9 @@ describe("Interaction headers", () => {
6970
trackPanelRequestCalls = 0
7071
trackGhostTextShownCalls = 0
7172

73+
spyOn(autoSession, "getAutoSessionTokenForModel").mockResolvedValue(
74+
"test-session-token",
75+
)
7276
spyOn(telemetryModule, "trackRequestSent").mockImplementation(() => {})
7377
spyOn(telemetryModule, "trackResponseSuccess").mockImplementation(() => {})
7478
spyOn(telemetryModule, "trackResponseError").mockImplementation(() => {})
@@ -246,6 +250,9 @@ describe("modelCallId telemetry alignment", () => {
246250
state.interactionId = "test-interaction-id"
247251
state.forceAgent = false
248252

253+
spyOn(autoSession, "getAutoSessionTokenForModel").mockResolvedValue(
254+
"test-session-token",
255+
)
249256
spyOn(telemetryModule, "trackRequestSent").mockImplementation(
250257
(...args: Parameters<typeof telemetryModule.trackRequestSent>) => {
251258
capturedModelCallIdFromRequestSent = args[3]
@@ -439,6 +446,9 @@ describe("Initiator detection (last-message role)", () => {
439446
state.interactionId = "test-interaction-id"
440447
state.forceAgent = false
441448

449+
spyOn(autoSession, "getAutoSessionTokenForModel").mockResolvedValue(
450+
"test-session-token",
451+
)
442452
spyOn(telemetryModule, "trackRequestSent").mockImplementation(() => {})
443453
spyOn(telemetryModule, "trackResponseSuccess").mockImplementation(() => {})
444454
spyOn(telemetryModule, "trackResponseError").mockImplementation(() => {})

tests/create-responses.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
describe,
1010
} from "bun:test"
1111

12+
import * as autoSession from "../src/lib/auto-session"
1213
import { getAttachedPremiumInfo } from "../src/lib/logger"
1314
import { getAttachedResponseHeaders } from "../src/lib/response-headers"
1415
import { state } from "../src/lib/state"
@@ -98,6 +99,10 @@ beforeEach(() => {
9899
// @ts-expect-error - Mock fetch doesn't implement all fetch properties
99100
;(globalThis as unknown as { fetch: typeof fetch }).fetch = fetchMock
100101

102+
spyOn(autoSession, "getAutoSessionTokenForModel").mockResolvedValue(
103+
"test-session-token",
104+
)
105+
101106
// Capture modelCallId using spyOn (can be restored by mock.restore())
102107
spyOn(telemetryModule, "trackRequestSent").mockImplementation(
103108
(

0 commit comments

Comments
 (0)