From 53b49dfe20cc247617734ef383ae47f5c883e911 Mon Sep 17 00:00:00 2001 From: Jeremy McSpadden Date: Fri, 17 Apr 2026 15:59:05 -0500 Subject: [PATCH] test: update #1657 regression guard for #2385 SDK install restoration The guard was added when @gsd-build/sdk did not yet exist on npm. The package is now published at v0.1.0 and every /gsd-* command depends on the `gsd-sdk` binary. Invert the assertions: --sdk/--no-sdk must be wired up and the installer must reference @gsd-build/sdk. Keep the promptSdk() ban to prevent reintroducing the old broken prompt. Co-Authored-By: Claude Opus 4.7 (1M context) --- tests/bugs-1656-1657.test.cjs | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/tests/bugs-1656-1657.test.cjs b/tests/bugs-1656-1657.test.cjs index 7fd2306c7..c940f8ac0 100644 --- a/tests/bugs-1656-1657.test.cjs +++ b/tests/bugs-1656-1657.test.cjs @@ -48,22 +48,43 @@ describe('#1656: community .sh hooks must be present in hooks/dist', () => { }); // ─── #1657 ─────────────────────────────────────────────────────────────────── +// +// Historical context: #1657 originally guarded against a broken `promptSdk()` +// flow that shipped when `@gsd-build/sdk` did not yet exist on npm. The +// package was published at v0.1.0 and is now a hard runtime requirement for +// every /gsd-* command (they all shell out to `gsd-sdk query …`). +// +// #2385 restored the `--sdk` flag and made SDK install the default path in +// bin/install.js. These guards are inverted: we now assert that SDK install +// IS wired up, and that the old broken `promptSdk()` prompt is still gone. -describe('#1657: SDK prompt must not appear in installer source', () => { +describe('#1657 / #2385: SDK install must be wired into installer source', () => { let src; - test('install.js does not contain promptSdk call', () => { + test('install.js does not contain the legacy promptSdk() prompt (#1657)', () => { src = fs.readFileSync(INSTALL_SRC, 'utf-8'); assert.ok( !src.includes('promptSdk('), - 'promptSdk() must not be called — SDK prompt causes install failures when package does not exist on npm' + 'promptSdk() must not be reintroduced — the old interactive prompt flow was broken' ); }); - test('install.js does not contain --sdk flag handling', () => { + test('install.js wires up --sdk / --no-sdk flag handling (#2385)', () => { src = src || fs.readFileSync(INSTALL_SRC, 'utf-8'); assert.ok( - !src.includes("args.includes('--sdk')"), - '--sdk flag must be removed to prevent users triggering a broken SDK install' + src.includes("args.includes('--sdk')"), + '--sdk flag must be parsed so users can force SDK (re)install' + ); + assert.ok( + src.includes("args.includes('--no-sdk')"), + '--no-sdk flag must be parsed so users can opt out of SDK install' + ); + }); + + test('install.js installs @gsd-build/sdk by default (#2385)', () => { + src = src || fs.readFileSync(INSTALL_SRC, 'utf-8'); + assert.ok( + src.includes('@gsd-build/sdk'), + 'installer must reference @gsd-build/sdk so gsd-sdk lands on PATH' ); }); });