From 2f0f085826010b5f68f8a58dec81e644b7085ebc Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Sat, 20 Jun 2026 19:31:13 +0800 Subject: [PATCH] chore(deadcode): remove bedrock test injection hooks --- .../amazon-bedrock/aws-credential-refresh.ts | 15 ---------- extensions/amazon-bedrock/index.test.ts | 29 +++++-------------- .../amazon-bedrock/register.sync.runtime.ts | 20 ------------- 3 files changed, 8 insertions(+), 56 deletions(-) diff --git a/extensions/amazon-bedrock/aws-credential-refresh.ts b/extensions/amazon-bedrock/aws-credential-refresh.ts index cacd63f906e1..3a7d1036a8b3 100644 --- a/extensions/amazon-bedrock/aws-credential-refresh.ts +++ b/extensions/amazon-bedrock/aws-credential-refresh.ts @@ -6,8 +6,6 @@ type SharedIniFileLoader = { loadSharedConfigFiles(init?: { ignoreCache?: boolean }): Promise; }; -let sharedIniFileLoaderForTest: SharedIniFileLoader | null | undefined; - function hasStaticAwsCredentialEnv(env: NodeJS.ProcessEnv): boolean { return Boolean(env.AWS_ACCESS_KEY_ID && env.AWS_SECRET_ACCESS_KEY); } @@ -21,12 +19,6 @@ export function shouldRefreshAwsSharedConfigCacheForBedrock(env: NodeJS.ProcessE } async function loadSharedIniFileLoader(): Promise { - if (sharedIniFileLoaderForTest !== undefined) { - if (!sharedIniFileLoaderForTest) { - throw new Error("AWS shared INI file loader unavailable"); - } - return sharedIniFileLoaderForTest; - } return (await import("@smithy/shared-ini-file-loader")) as SharedIniFileLoader; } @@ -40,10 +32,3 @@ export async function refreshAwsSharedConfigCacheForBedrock( const loader = await loadSharedIniFileLoader(); await loader.loadSharedConfigFiles({ ignoreCache: true }); } - -/** Override the shared INI loader for Bedrock credential-refresh tests. */ -export function setAwsSharedIniFileLoaderForTest( - loader: SharedIniFileLoader | null | undefined, -): void { - sharedIniFileLoaderForTest = loader; -} diff --git a/extensions/amazon-bedrock/index.test.ts b/extensions/amazon-bedrock/index.test.ts index 5e7730cbf434..533cb0cb96bf 100644 --- a/extensions/amazon-bedrock/index.test.ts +++ b/extensions/amazon-bedrock/index.test.ts @@ -9,14 +9,9 @@ import { } from "openclaw/plugin-sdk/plugin-test-runtime"; import { withEnvAsync } from "openclaw/plugin-sdk/test-env"; import { afterAll, afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import { setAwsSharedIniFileLoaderForTest } from "./aws-credential-refresh.js"; import { supportsBedrockPromptCaching } from "./bedrock-options.js"; import { resetBedrockDiscoveryCacheForTest } from "./discovery.js"; import amazonBedrockPlugin from "./index.js"; -import { - resetBedrockAppProfileCacheEligibilityForTest, - setBedrockAppProfileControlPlaneForTest, -} from "./register.sync.runtime.js"; type BedrockClientResult = | { @@ -96,6 +91,10 @@ vi.mock("@aws-sdk/client-bedrock", () => { }; }); +vi.mock("@smithy/shared-ini-file-loader", () => ({ + loadSharedConfigFiles: refreshSharedConfigCache, +})); + type RegisteredProviderPlugin = Awaited>; /** Register the amazon-bedrock plugin with an optional pluginConfig override. */ @@ -149,6 +148,8 @@ const ANTHROPIC_MODEL_DESCRIPTOR = { const APP_INFERENCE_PROFILE_ARN = "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/my-claude-profile"; +const OPUS_APP_INFERENCE_PROFILE_ARN = + "arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/opus-temperature-profile"; const APP_INFERENCE_PROFILE_DESCRIPTOR = { api: "openai-completions", provider: "amazon-bedrock", @@ -267,26 +268,12 @@ describe("amazon-bedrock provider plugin", () => { inferenceProfileGetResults.length = 0; bedrockClientConfigs.length = 0; refreshSharedConfigCache.mockClear(); - setAwsSharedIniFileLoaderForTest({ loadSharedConfigFiles: refreshSharedConfigCache }); sendBedrockCommand.mockClear(); resetBedrockDiscoveryCacheForTest(); - resetBedrockAppProfileCacheEligibilityForTest(); - setBedrockAppProfileControlPlaneForTest((region) => ({ - async getInferenceProfile(input) { - class GetInferenceProfileCommand { - constructor(readonly inputLocal: Record = {}) {} - } - bedrockClientConfigs.push(region ? { region } : {}); - return await sendBedrockCommand(new GetInferenceProfileCommand(input)); - }, - })); }); afterEach(() => { - setBedrockAppProfileControlPlaneForTest(undefined); - setAwsSharedIniFileLoaderForTest(undefined); resetBedrockDiscoveryCacheForTest(); - resetBedrockAppProfileCacheEligibilityForTest(); }); afterAll(() => { @@ -1501,8 +1488,8 @@ describe("amazon-bedrock provider plugin", () => { await callWrappedStreamWithPayload( provider, - APP_INFERENCE_PROFILE_ARN, - APP_INFERENCE_PROFILE_DESCRIPTOR, + OPUS_APP_INFERENCE_PROFILE_ARN, + makeAppInferenceProfileDescriptor(OPUS_APP_INFERENCE_PROFILE_ARN), { temperature: 0.3, maxTokens: 10, cacheRetention: "short" }, payload, ); diff --git a/extensions/amazon-bedrock/register.sync.runtime.ts b/extensions/amazon-bedrock/register.sync.runtime.ts index bfcaa682a380..8647e680ba44 100644 --- a/extensions/amazon-bedrock/register.sync.runtime.ts +++ b/extensions/amazon-bedrock/register.sync.runtime.ts @@ -254,27 +254,7 @@ type BedrockControlPlane = { }) => Promise; }; -type BedrockControlPlaneFactory = (region: string | undefined) => BedrockControlPlane; - -let bedrockControlPlaneOverride: BedrockControlPlaneFactory | undefined; - -/** Reset app-profile prompt-cache eligibility state for tests. */ -export function resetBedrockAppProfileCacheEligibilityForTest(): void { - appProfileTraitsCache.clear(); -} - -/** Override Bedrock app-profile control-plane checks for tests. */ -export function setBedrockAppProfileControlPlaneForTest( - controlPlane: BedrockControlPlaneFactory | undefined, -): void { - bedrockControlPlaneOverride = controlPlane; - resetBedrockAppProfileCacheEligibilityForTest(); -} - async function createBedrockControlPlane(region: string | undefined): Promise { - if (bedrockControlPlaneOverride) { - return bedrockControlPlaneOverride(region); - } await refreshAwsSharedConfigCacheForBedrock(); const { BedrockClient, GetInferenceProfileCommand } = await import("@aws-sdk/client-bedrock"); const client = new BedrockClient(region ? { region } : {});