mirror of
https://github.com/glittercowboy/get-shit-done
synced 2026-04-25 17:25:23 +02:00
Project convention (#1748) requires /gsd-<cmd> hyphen form everywhere except designated test inputs. Fix the colon references in the pre-flight error and its regression test to satisfy stale-colon-refs.
55 lines
2.0 KiB
JavaScript
55 lines
2.0 KiB
JavaScript
/**
|
|
* Regression test for bug #2439
|
|
*
|
|
* /gsd-set-profile crashed with `command not found: gsd-sdk` when the
|
|
* gsd-sdk binary was not installed or not in PATH. The command body
|
|
* invoked `gsd-sdk query config-set-model-profile` directly with no
|
|
* pre-flight check, so missing gsd-sdk produced an opaque shell error.
|
|
*
|
|
* Fix mirrors bug #2334: guard the invocation with `command -v gsd-sdk`
|
|
* and emit an install hint when absent.
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
const { test, describe } = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const COMMAND_PATH = path.join(__dirname, '..', 'commands', 'gsd', 'set-profile.md');
|
|
|
|
describe('bug #2439: /gsd-set-profile gsd-sdk pre-flight check', () => {
|
|
const content = fs.readFileSync(COMMAND_PATH, 'utf-8');
|
|
|
|
test('command file exists', () => {
|
|
assert.ok(fs.existsSync(COMMAND_PATH), 'commands/gsd/set-profile.md should exist');
|
|
});
|
|
|
|
test('guards gsd-sdk invocation with command -v check', () => {
|
|
const sdkCall = content.indexOf('gsd-sdk query config-set-model-profile');
|
|
assert.ok(sdkCall !== -1, 'gsd-sdk query config-set-model-profile must be present');
|
|
|
|
const preamble = content.slice(0, sdkCall);
|
|
assert.ok(
|
|
preamble.includes('command -v gsd-sdk') || preamble.includes('which gsd-sdk'),
|
|
'set-profile must check for gsd-sdk in PATH before invoking it. ' +
|
|
'Without this guard the command crashes with exit 127 when gsd-sdk ' +
|
|
'is not installed (root cause of #2439).'
|
|
);
|
|
});
|
|
|
|
test('pre-flight error message references install/update path', () => {
|
|
const sdkCall = content.indexOf('gsd-sdk query config-set-model-profile');
|
|
const preamble = content.slice(0, sdkCall);
|
|
const hasInstallHint =
|
|
preamble.includes('@gsd-build/sdk') ||
|
|
preamble.includes('gsd-update') ||
|
|
preamble.includes('/gsd-update');
|
|
assert.ok(
|
|
hasInstallHint,
|
|
'Pre-flight error must point users at `npm install -g @gsd-build/sdk` or `/gsd-update`.'
|
|
);
|
|
});
|
|
});
|