46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
const { describe, test, before } = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
|
|
let installer;
|
|
let conversion;
|
|
|
|
before(() => {
|
|
process.env['GSD_TEST_MODE'] = '1';
|
|
installer = require('../bin/install.js');
|
|
conversion = require('../gsd-core/bin/lib/runtime-artifact-conversion.cjs');
|
|
});
|
|
|
|
describe('bin/install.js compatibility export audit (#1559)', () => {
|
|
test('retains audited compatibility relays for shared rewrite helpers', () => {
|
|
assert.strictEqual(installer.processAttribution, conversion.processAttribution);
|
|
assert.strictEqual(
|
|
installer.applyRuntimeContentRewritesForCommandsInPlace,
|
|
conversion.applyRuntimeContentRewritesForCommandsInPlace,
|
|
);
|
|
});
|
|
|
|
test('does not leak unaudited conversion-module helpers through the installer', () => {
|
|
for (const name of [
|
|
'yamlQuote',
|
|
'toSingleLine',
|
|
'extractFrontmatterAndBody',
|
|
'extractFrontmatterField',
|
|
'convertClaudeToCursorMarkdown',
|
|
'convertClaudeToCodexMarkdown',
|
|
'transformContentToHyphen',
|
|
'claudeToGeminiTools',
|
|
'convertGeminiToolName',
|
|
'rewriteStagedSkillBodies',
|
|
'rewriteStagedCommandBodies',
|
|
'_computePathPrefix',
|
|
'_stampNonClaudeRuntimeDefaults',
|
|
'NON_CLAUDE_RUNTIMES',
|
|
]) {
|
|
assert.ok(name in conversion, `${name} remains available from the conversion module`);
|
|
assert.equal(installer[name], undefined, `${name} is not an installer compatibility export`);
|
|
}
|
|
});
|
|
});
|