From d4b6eb714cc69642465834ff847ccdff27d9e5af Mon Sep 17 00:00:00 2001 From: Tibsfox Date: Sun, 5 Apr 2026 11:56:29 -0700 Subject: [PATCH] test(pi-coding-agent): add custom provider registration test --- .../model-registry-custom-provider.test.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/tests/model-registry-custom-provider.test.ts diff --git a/src/tests/model-registry-custom-provider.test.ts b/src/tests/model-registry-custom-provider.test.ts new file mode 100644 index 000000000..323b8776b --- /dev/null +++ b/src/tests/model-registry-custom-provider.test.ts @@ -0,0 +1,25 @@ +/** + * Regression test for #3531: models.json custom providers must be registered + * in registeredProviders so isProviderRequestReady() returns true. + */ +import { test } from "node:test"; +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; +import { join, dirname } from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); + +test("parseModels registers custom providers in registeredProviders (#3531)", () => { + const src = readFileSync( + join(__dirname, "..", "..", "packages", "pi-coding-agent", "src", "core", "model-registry.ts"), + "utf-8", + ); + // The fix adds registeredProviders.set() inside parseModels + const parseModelsBlock = src.slice(src.indexOf("private parseModels")); + assert.ok( + parseModelsBlock.includes("registeredProviders.set") || + parseModelsBlock.includes("this.registeredProviders.set"), + "parseModels must register custom providers in registeredProviders", + ); +});