From 169d33ded2b1887c5e0830f914a884994939679d Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 27 Apr 2026 11:33:29 +0100 Subject: [PATCH] test: speed up auth rotation e2e --- ...pi-agent.auth-profile-rotation.e2e.test.ts | 121 ++++++++++++++---- 1 file changed, 98 insertions(+), 23 deletions(-) diff --git a/src/agents/pi-embedded-runner.run-embedded-pi-agent.auth-profile-rotation.e2e.test.ts b/src/agents/pi-embedded-runner.run-embedded-pi-agent.auth-profile-rotation.e2e.test.ts index 21ba2f372b3..df152ff473a 100644 --- a/src/agents/pi-embedded-runner.run-embedded-pi-agent.auth-profile-rotation.e2e.test.ts +++ b/src/agents/pi-embedded-runner.run-embedded-pi-agent.auth-profile-rotation.e2e.test.ts @@ -36,6 +36,82 @@ const installRunEmbeddedMocks = () => { vi.doMock("./runtime-plugins.js", () => ({ ensureRuntimePluginsLoaded: vi.fn(), })); + vi.doMock("./harness/selection.js", () => ({ + selectAgentHarness: vi.fn((params: { provider?: string }) => ({ + id: params.provider === "codex-cli" ? "codex" : "pi", + label: "Mock agent harness", + supports: vi.fn(() => ({ supported: false })), + runAttempt: vi.fn(), + })), + runAgentHarnessAttemptWithFallback: (params: unknown) => runEmbeddedAttemptMock(params), + })); + vi.doMock("./runtime-plan/build.js", () => ({ + buildAgentRuntimePlan: vi.fn( + (params: { + provider: string; + modelId: string; + modelApi?: string | null; + harnessId?: string; + sessionAuthProfileId?: string; + }) => ({ + resolvedRef: { + provider: params.provider, + modelId: params.modelId, + ...(params.modelApi ? { modelApi: params.modelApi } : {}), + ...(params.harnessId ? { harnessId: params.harnessId } : {}), + }, + auth: { + providerForAuth: params.provider, + authProfileProviderForAuth: params.sessionAuthProfileId?.split(":", 1)[0] ?? "", + forwardedAuthProfileId: params.sessionAuthProfileId, + }, + prompt: { + provider: params.provider, + modelId: params.modelId, + resolveSystemPromptContribution: vi.fn(() => undefined), + }, + tools: { + normalize: vi.fn((tools: unknown[]) => tools), + logDiagnostics: vi.fn(), + }, + transcript: { + policy: { + sanitizeMode: "full", + sanitizeToolCallIds: true, + preserveNativeAnthropicToolUseIds: false, + repairToolUseResultPairing: true, + preserveSignatures: false, + sanitizeThinkingSignatures: true, + dropThinkingBlocks: false, + applyGoogleTurnOrdering: false, + validateGeminiTurns: false, + validateAnthropicTurns: false, + allowSyntheticToolResults: true, + }, + resolvePolicy: vi.fn(() => undefined), + }, + delivery: { + isSilentPayload: vi.fn(() => false), + resolveFollowupRoute: vi.fn(() => undefined), + }, + outcome: { + classifyRunResult: vi.fn(() => undefined), + }, + transport: { + extraParams: {}, + resolveExtraParams: vi.fn(() => ({})), + }, + observability: { + resolvedRef: `${params.provider}/${params.modelId}`, + provider: params.provider, + modelId: params.modelId, + ...(params.modelApi ? { modelApi: params.modelApi } : {}), + ...(params.harnessId ? { harnessId: params.harnessId } : {}), + ...(params.sessionAuthProfileId ? { authProfileId: params.sessionAuthProfileId } : {}), + }, + }), + ), + })); vi.doMock("./pi-embedded-runner/model.js", () => ({ resolveModelAsync: async (provider: string, modelId: string) => ({ model: { @@ -61,29 +137,28 @@ const installRunEmbeddedMocks = () => { vi.doMock("./pi-embedded-runner/run/attempt.js", () => ({ runEmbeddedAttempt: (params: unknown) => runEmbeddedAttemptMock(params), })); - vi.doMock("../plugins/provider-runtime.js", async () => { - const actual = await vi.importActual( - "../plugins/provider-runtime.js", - ); - return { - ...actual, - prepareProviderRuntimeAuth: async (params: { - provider: string; - context: { apiKey: string }; - }) => { - if (params.provider !== "github-copilot") { - return undefined; - } - const token = await resolveCopilotApiTokenMock(params.context.apiKey); - return { - apiKey: token.token, - baseUrl: token.baseUrl, - expiresAt: token.expiresAt, - }; - }, - resolveProviderCapabilitiesWithPlugin: vi.fn(() => undefined), - }; - }); + vi.doMock("../plugins/provider-runtime.js", () => ({ + buildProviderMissingAuthMessageWithPlugin: vi.fn(() => undefined), + prepareProviderRuntimeAuth: async (params: { + provider: string; + context: { apiKey: string }; + }) => { + if (params.provider !== "github-copilot") { + return undefined; + } + const token = await resolveCopilotApiTokenMock(params.context.apiKey); + return { + apiKey: token.token, + baseUrl: token.baseUrl, + expiresAt: token.expiresAt, + }; + }, + resolveProviderAuthProfileId: vi.fn(() => undefined), + resolveProviderCapabilitiesWithPlugin: vi.fn(() => undefined), + resolveExternalAuthProfilesWithPlugins: vi.fn(() => []), + resolveProviderSyntheticAuthWithPlugin: vi.fn(() => undefined), + shouldDeferProviderSyntheticProfileAuthWithPlugin: vi.fn(() => false), + })); vi.doMock("../infra/backoff.js", () => ({ computeBackoff: ( policy: { initialMs: number; maxMs: number; factor: number; jitter: number },