Files
playbook/antigravity-awesome-skills/tools/scripts/tests/installer_cli_args.test.js
T
2026-07-13 16:04:08 +00:00

43 lines
1.7 KiB
JavaScript

const assert = require('assert');
const path = require('path');
const { spawnSync } = require('child_process');
const packageVersion = require('../../../package.json').version;
const installerPath = path.resolve(__dirname, '..', '..', 'bin', 'install.js');
const installer = require(installerPath);
assert.throws(() => installer.parseArgs(['--path']), /requires a value/i);
assert.throws(() => installer.parseArgs(['--path', '--codex']), /requires a value/i);
assert.throws(() => installer.parseArgs(['--unknown']), /unknown option/i);
assert.throws(() => installer.parseArgs(['status']), /unknown option or command/i);
const release = installer.parseArgs(['--release', '14.0.0']);
assert.strictEqual(release.versionArg, '14.0.0');
assert.strictEqual(release.versionInfo, false);
const exactPreview = installer.parseArgs([
'--codex',
'--skills',
'frontend-design,game-development/2d-games',
'--dry-run',
]);
assert.strictEqual(exactPreview.skillsArg, 'frontend-design,game-development/2d-games');
assert.strictEqual(exactPreview.dryRun, true);
assert.deepStrictEqual(
installer.parseExactSkillArg(exactPreview.skillsArg),
['frontend-design', 'game-development/2d-games'],
);
assert.throws(
() => installer.parseExactSkillArg('frontend-design,,backend-dev-guidelines'),
/non-empty exact skill/i,
);
const version = spawnSync(process.execPath, [installerPath, '--version'], { encoding: 'utf8' });
assert.strictEqual(version.status, 0, version.stderr);
assert.strictEqual(version.stdout.trim(), packageVersion);
assert.doesNotMatch(version.stdout, /Cloning repository/i);
const invalid = spawnSync(process.execPath, [installerPath, '--unknown'], { encoding: 'utf8' });
assert.notStrictEqual(invalid.status, 0);
assert.match(invalid.stderr, /unknown option/i);