import test from 'node:test'; import assert from 'node:assert/strict'; import { parseCustodyDbArguments } from '../server/market/custody-db-args.ts'; test('custody database CLI parses two-argument deposit operations without shifting arguments', () => { assert.deepEqual(parseCustodyDbArguments(['deposit-prepare-credit', 'a'.repeat(64), `${'b'.repeat(64)}:${'c'.repeat(64)}`]), { action: 'deposit-prepare-credit', argument: 'a'.repeat(64), extraArgument: `${'b'.repeat(64)}:${'c'.repeat(64)}`, }); assert.deepEqual(parseCustodyDbArguments(['deposit-prepare-resolve-hold', 'credit-id', 'hold-id']), { action: 'deposit-prepare-resolve-hold', argument: 'credit-id', extraArgument: 'hold-id', }); }); test('custody database CLI rejects unknown, missing, empty, and excess arguments', () => { for (const args of [[], ['unknown'], ['audit', 'extra'], ['deposit-prepare-credit', 'wallet'], ['deposit-prepare-credit', 'wallet', 'observation', 'extra'], ['deposit-release', '']]) { assert.throws(() => parseCustodyDbArguments(args)); } });