Files
openclaw/src/plugins/provider-runtime.test-support.ts
Peter Steinberger 98e3f729bc refactor: remove dead plugin loader exports (#105937)
* refactor(plugins): trim activation and contract exports

* test(plugins): restore fixture cleanup

* refactor(plugins): trim install and loader exports

* test(plugins): fully reset loader caches

* refactor(plugins): trim metadata and catalog exports

* test(plugins): preserve catalog trust coverage

* refactor(plugins): trim provider and plugin exports

* refactor(plugins): trim runtime and tool exports

* test(plugins): update dead-export consumers

* test(plugins): remove empty dead-export suites

* refactor(plugins): align exports with split registry

* refactor(plugins): trim drifted loader exports

* style(plugins): format test fixtures

* refactor(scripts): use supported plugin APIs

* refactor(plugins): finish dead export cleanup

* chore(deadcode): refresh export baseline

* test(cli): mock production memory state

* chore(deadcode): sync latest export baseline

* fix(tests): keep plugin fixtures inside core

* chore(deadcode): refresh rebased export baseline

* chore(deadcode): sync current ratchets

* fix(plugins): retain reserved slot invariant

* fix(plugins): preserve dead-export invariants

* test(plugins): use neutral catalog query fixture

* test(plugins): satisfy catalog lint

* test(plugins): preserve integrity drift coverage

* fix(ci): register skill experience live proof
2026-07-13 01:29:33 -07:00

78 lines
2.6 KiB
TypeScript

// Provides shared assertions for provider plugin runtime tests.
import { expect } from "vitest";
const openaiCodexCatalogEntries = [
{ provider: "openai", id: "gpt-5.5", name: "gpt-5.5" },
{ provider: "openai", id: "gpt-5.5-pro", name: "gpt-5.5-pro" },
{ provider: "openai", id: "gpt-5.4", name: "gpt-5.4" },
{ provider: "openai", id: "gpt-5.4-pro", name: "gpt-5.4-pro" },
{ provider: "openai", id: "gpt-5.2", name: "GPT-5.2" },
{ provider: "openai", id: "gpt-5.2-pro", name: "GPT-5.2 Pro" },
{ provider: "openai", id: "gpt-5-mini", name: "GPT-5 mini" },
{ provider: "openai", id: "gpt-5-nano", name: "GPT-5 nano" },
{ provider: "openai", id: "gpt-5.3-codex", name: "GPT-5.3 Codex" },
];
const expectedAugmentedOpenaiCodexCatalogEntries = [
{ provider: "openai", id: "gpt-5.4", name: "gpt-5.4" },
{ provider: "openai", id: "gpt-5.4-pro", name: "gpt-5.4-pro" },
{ provider: "openai", id: "gpt-5.4-mini", name: "gpt-5.4-mini" },
{ provider: "openai", id: "gpt-5.4-nano", name: "gpt-5.4-nano" },
];
export const expectedAugmentedOpenaiCodexCatalogEntriesWithGpt55 = [
{ provider: "openai", id: "gpt-5.5-pro", name: "gpt-5.5-pro" },
...expectedAugmentedOpenaiCodexCatalogEntries,
];
export const expectedOpenaiPluginCodexCatalogEntriesWithGpt55 =
expectedAugmentedOpenaiCodexCatalogEntriesWithGpt55;
export function expectCodexMissingAuthHint(
buildProviderMissingAuthMessageWithPlugin: (params: {
provider: string;
env: NodeJS.ProcessEnv;
context: {
env: NodeJS.ProcessEnv;
provider: string;
listProfileIds: (providerId: string) => string[];
};
}) => string | undefined,
expectedModel = "openai/gpt-5.5",
) {
expect(
buildProviderMissingAuthMessageWithPlugin({
provider: "openai",
env: process.env,
context: {
env: process.env,
provider: "openai",
listProfileIds: (providerId) => (providerId === "openai" ? ["p1"] : []),
},
}),
).toContain(expectedModel);
}
export async function expectAugmentedCodexCatalog(
augmentModelCatalogWithProviderPlugins: (params: {
env: NodeJS.ProcessEnv;
context: {
env: NodeJS.ProcessEnv;
entries: typeof openaiCodexCatalogEntries;
};
}) => Promise<unknown>,
expectedEntries = expectedAugmentedOpenaiCodexCatalogEntries,
) {
const result = (await augmentModelCatalogWithProviderPlugins({
env: process.env,
context: {
env: process.env,
entries: openaiCodexCatalogEntries,
},
})) as Array<Record<string, unknown>>;
expect(result).toHaveLength(expectedEntries.length);
for (const entry of expectedEntries) {
expect(result).toContainEqual(expect.objectContaining(entry));
}
}