import test from 'node:test'; import assert from 'node:assert/strict'; import type { SourceTarget } from './requirement'; import { filterSourceTargetsByKeyword, formatSourceTargetSelection, parseSourceTargetSelection, } from './requirement'; const targets: SourceTarget[] = [ { id: 'st-1', name: 'Alpha Bank', sourceType: 'customer', createdAt: '2026-07-01' }, { id: 'st-2', name: 'Beta Retail', sourceType: 'customer', createdAt: '2026-07-01' }, { id: 'st-3', name: 'Product Team', sourceType: 'internal', createdAt: '2026-07-01' }, ]; test('parses and formats requirement source target multi-selection', () => { assert.deepEqual(parseSourceTargetSelection('Alpha Bank、 Beta Retail, Product Team,Alpha Bank'), [ 'Alpha Bank', 'Beta Retail', 'Product Team', ]); assert.equal(formatSourceTargetSelection(['Alpha Bank', '', 'Beta Retail', 'Alpha Bank']), 'Alpha Bank、Beta Retail'); }); test('filters source targets by source type and keyword', () => { assert.deepEqual( filterSourceTargetsByKeyword(targets, 'customer', 'bank').map((target) => target.id), ['st-1'], ); assert.deepEqual( filterSourceTargetsByKeyword(targets, 'internal', '').map((target) => target.id), ['st-3'], ); });