import assert from 'node:assert/strict' import test from 'node:test' import { parseBugCollectOption, parsePackageOptions } from './package-options.mjs' test('package options normalize equals and space bugcollect syntax', () => { assert.deepEqual(parsePackageOptions(['--bugcollect=disabled']), { apk: false, bugCollectMode: 'disabled', }) assert.deepEqual(parsePackageOptions(['--apk', '--bugcollect', 'disabled']), { apk: true, bugCollectMode: 'disabled', }) assert.deepEqual(parsePackageOptions([]), { apk: false, bugCollectMode: 'platform', }) }) test('publish and package share one BugCollect option parser', () => { assert.deepEqual(parseBugCollectOption(['--module', 'app', '--bugcollect=disabled']), { bugCollectMode: 'disabled', remaining: ['--module', 'app'], }) assert.deepEqual(parseBugCollectOption(['--note', 'release'], 'disabled'), { bugCollectMode: 'disabled', remaining: ['--note', 'release'], }) }) test('package options reject duplicate, missing and invalid values', () => { assert.throws( () => parsePackageOptions(['--bugcollect=disabled', '--bugcollect', 'platform']), /only once/, ) assert.throws(() => parsePackageOptions(['--bugcollect']), /requires a value/) assert.throws(() => parsePackageOptions(['--bugcollect=unknown']), /platform or disabled/) assert.throws(() => parsePackageOptions(['--unknown']), /unknown option/) })