import { rmSync, writeFileSync } from "node:fs";import { describe, expect, it } from "vitest";import { pluginConfigKey, readCodexMarketplaces, setPluginEnabledInConfig } from "./plugin-config"; describe("plugin config", () => { it("builds Codex plugin keys", () => { expect(pluginConfigKey("browser-use", "openai-bundled")).toBe("browser-use@openai-bundled"); expect(pluginConfigKey("local-plugin")).toBe("local-plugin"); }); it("updates an existing plugin enabled flag", () => { const raw = '[plugins."browser-use@openai-bundled"]\nenabled = true\n\n[profiles.default]\n'; expect(setPluginEnabledInConfig(raw, "browser-use@openai-bundled", false)).toBe( '[plugins."browser-use@openai-bundled"]\nenabled = false\n[profiles.default]\n', ); }); it("adds enabled to an existing plugin section without one", () => { const raw = '[plugins."computer-use@openai-bundled"]\nfoo = "bar"\n'; expect(setPluginEnabledInConfig(raw, "computer-use@openai-bundled", true)).toBe( '[plugins."computer-use@openai-bundled"]\nfoo = "bar"\nenabled = true\n', ); }); it("appends a missing plugin section", () => { expect(setPluginEnabledInConfig("model = \"x\"\n", "github@openai-curated", true)).toBe( 'model = "x"\n\n[plugins."github@openai-curated"]\nenabled = true\n', ); }); it("reads Codex marketplace metadata", () => { const raw = '[marketplaces.openai-bundled]\nlast_updated = "2026-04-18T22:03:02Z"\nsource_type = "local"\nsource = "/Applications/Codex.app/Contents/Resources/plugins/openai-bundled"\n\n[plugins."browser-use@openai-bundled"]\nenabled = true\n'; const tmp = `/tmp/vllm-plugin-config-${process.pid}.toml`; writeFileSync(tmp, raw); try { expect(readCodexMarketplaces(tmp)).toEqual([ { name: "openai-bundled", lastUpdated: "2026-04-18T22:03:02Z", sourceType: "local", source: "/Applications/Codex.app/Contents/Resources/plugins/openai-bundled", }, ]); } finally { rmSync(tmp, { force: true }); } });});
import { rmSync, writeFileSync } from "node:fs";
import { describe, expect, it } from "vitest";
import { pluginConfigKey, readCodexMarketplaces, setPluginEnabledInConfig } from "./plugin-config";
describe("plugin config", () => {
it("builds Codex plugin keys", () => {
expect(pluginConfigKey("browser-use", "openai-bundled")).toBe("browser-use@openai-bundled");
expect(pluginConfigKey("local-plugin")).toBe("local-plugin");
});
it("updates an existing plugin enabled flag", () => {
const raw = '[plugins."browser-use@openai-bundled"]\nenabled = true\n\n[profiles.default]\n';
expect(setPluginEnabledInConfig(raw, "browser-use@openai-bundled", false)).toBe(
'[plugins."browser-use@openai-bundled"]\nenabled = false\n[profiles.default]\n',
);
});
it("adds enabled to an existing plugin section without one", () => {
const raw = '[plugins."computer-use@openai-bundled"]\nfoo = "bar"\n';
expect(setPluginEnabledInConfig(raw, "computer-use@openai-bundled", true)).toBe(
'[plugins."computer-use@openai-bundled"]\nfoo = "bar"\nenabled = true\n',
);
});
it("appends a missing plugin section", () => {
expect(setPluginEnabledInConfig("model = \"x\"\n", "github@openai-curated", true)).toBe(
'model = "x"\n\n[plugins."github@openai-curated"]\nenabled = true\n',
);
});
it("reads Codex marketplace metadata", () => {
const raw =
'[marketplaces.openai-bundled]\nlast_updated = "2026-04-18T22:03:02Z"\nsource_type = "local"\nsource = "/Applications/Codex.app/Contents/Resources/plugins/openai-bundled"\n\n[plugins."browser-use@openai-bundled"]\nenabled = true\n';
const tmp = `/tmp/vllm-plugin-config-${process.pid}.toml`;
writeFileSync(tmp, raw);
try {
expect(readCodexMarketplaces(tmp)).toEqual([
{
name: "openai-bundled",
lastUpdated: "2026-04-18T22:03:02Z",
sourceType: "local",
source: "/Applications/Codex.app/Contents/Resources/plugins/openai-bundled",
},
]);
} finally {
rmSync(tmp, { force: true });
}
});
});