From d4bddfadf5a23f0b694dcfac668b7e91a940030d Mon Sep 17 00:00:00 2001 From: Jeremy Date: Mon, 13 Apr 2026 06:32:47 -0500 Subject: [PATCH] test(cli): regression test for pi-migration.getPiDefaultModelAndProvider export MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Asserts that getPiDefaultModelAndProvider and migratePiCredentials remain callable top-level exports from src/pi-migration.ts. If either is ever renamed or unexported, this test fails before the root `tsc` build breaks every CI job on main — the same class of regression introduced by 110c01b8c. --- src/tests/pi-migration-exports.test.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/tests/pi-migration-exports.test.ts diff --git a/src/tests/pi-migration-exports.test.ts b/src/tests/pi-migration-exports.test.ts new file mode 100644 index 000000000..e54a8a8c7 --- /dev/null +++ b/src/tests/pi-migration-exports.test.ts @@ -0,0 +1,23 @@ +// GSD-2 — Regression test for pi-migration.ts public exports consumed by cli.ts +// +// Guards against the TS2304 regression introduced by 080c6ac1e where +// src/cli.ts called `getPiDefaultModelAndProvider()` without importing it. +// If the symbol is ever renamed or unexported, this test fails before the +// root `tsc` build breaks every CI job on main. + +import { test } from "node:test"; +import assert from "node:assert/strict"; + +import * as piMigration from "../pi-migration.js"; + +test("pi-migration exports getPiDefaultModelAndProvider for cli.ts fallback-model resolution", () => { + assert.equal( + typeof piMigration.getPiDefaultModelAndProvider, + "function", + "cli.ts validateConfiguredModel relies on this export to pick a fallback model", + ); +}); + +test("pi-migration exports migratePiCredentials for cli.ts startup migration", () => { + assert.equal(typeof piMigration.migratePiCredentials, "function"); +});