


























@@ -134,6 +134,19 @@ function requireFirstMockArg(
134134return requireRecord(call[0], `${label} payload`);
135135}
136136137+function requireMockCallArg(
138+mock: ReturnType<typeof vi.fn>,
139+index: number,
140+label: string,
141+): Record<string, unknown> {
142+const resolvedIndex = index < 0 ? mock.mock.calls.length + index : index;
143+const call = mock.mock.calls[resolvedIndex];
144+if (!call) {
145+throw new Error(`expected ${label} call ${index}`);
146+}
147+return requireRecord(call[0], `${label} payload`);
148+}
149+137150function requireFirstSignCall(): [privateKey: string, payload: string] {
138151const [call] = signDevicePayloadMock.mock.calls;
139152if (!call) {
@@ -167,15 +180,15 @@ function expectLatestRequestTiming(
167180onRequestTiming: ReturnType<typeof vi.fn>,
168181expected: Partial<RequestTimingPayload>,
169182) {
170-const timing = onRequestTiming.mock.calls.at(-1)?.[0] as RequestTimingPayload | undefined;
183+const timing = requireMockCallArg(onRequestTiming, -1, "request timing") as RequestTimingPayload;
171184for (const [key, value] of Object.entries(expected)) {
172-expect(timing?.[key as keyof RequestTimingPayload]).toBe(value);
185+expect(timing[key as keyof RequestTimingPayload]).toBe(value);
173186}
174-expect(timing?.startedAtMs).toBeTypeOf("number");
175-expect(timing?.endedAtMs).toBeTypeOf("number");
176-expect(timing?.durationMs).toBeTypeOf("number");
187+expect(timing.startedAtMs).toBeTypeOf("number");
188+expect(timing.endedAtMs).toBeTypeOf("number");
189+expect(timing.durationMs).toBeTypeOf("number");
177190if (
178-typeof timing?.startedAtMs === "number" &&
191+typeof timing.startedAtMs === "number" &&
179192typeof timing.endedAtMs === "number" &&
180193typeof timing.durationMs === "number"
181194) {
@@ -829,7 +842,8 @@ describe("GatewayBrowserClient", () => {
829842830843const { connectFrame } = await continueConnect(secondWs, "nonce-current");
831844expect(connectFrame.method).toBe("connect");
832-const signedPayload = signDevicePayloadMock.mock.calls.at(-1)?.[1];
845+const signedPayload =
846+signDevicePayloadMock.mock.calls[signDevicePayloadMock.mock.calls.length - 1]?.[1];
833847expectSignedPayloadFields(signedPayload, {
834848scopes: [...CONTROL_UI_OPERATOR_SCOPES],
835849token: "shared-auth-token",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。