import assert from 'node:assert/strict' import { spawnSync } from 'node:child_process' import fs from 'node:fs' import os from 'node:os' import path from 'node:path' import test from 'node:test' test('CLI accepts repeated --input paths and glob patterns', () => { const rootDir = fs.mkdtempSync(path.join(os.tmpdir(), 'svg-sprites-cli-input-')) const iconsDir = path.join(rootDir, 'icons') fs.mkdirSync(iconsDir) fs.writeFileSync(path.join(iconsDir, 'check.svg'), '') fs.writeFileSync(path.join(iconsDir, 'close.svg'), '') const result = spawnSync(process.execPath, [ 'dist/cli.js', '--mode=standalone', '--name=cli-icons', '--input', 'icons/*.svg', '--input', '!icons/close.svg', rootDir, ], { cwd: path.resolve('.'), encoding: 'utf8', }) assert.equal(result.status, 0, result.stderr) const sprite = fs.readFileSync(path.join(rootDir, '.svg-sprite', 'sprite.svg'), 'utf8') assert.match(sprite, /id="check"/) assert.doesNotMatch(sprite, /id="close"/) }) test('CLI rejects removed input flags', () => { const result = spawnSync(process.execPath, [ 'dist/cli.js', '--input-folder=icons', '.', ], { cwd: path.resolve('.'), encoding: 'utf8', }) assert.notEqual(result.status, 0) assert.match(result.stderr, /Unknown argument: --input-folder=icons/) })