import { test } from 'node:test'; import assert from 'node:assert/strict'; import { buildGroupParents } from '../../scripts/legacy-layer-to-cocos-prefab.mjs'; test('buildGroupParents 把同 group Spirit 归类', () => { const spirits = [ { id: '1', group: '2', indexOfLayer: '1' }, { id: '405', group: '2', indexOfLayer: '2' }, { id: '285', group: '2', indexOfLayer: '3' }, ]; const result = buildGroupParents(spirits); assert.equal(result.groupParents.length, 1, '只有一个 group=2'); assert.equal(result.groupParents[0].name, 'group-2'); assert.deepEqual(result.groupParents[0].childSpiritIds, ['1', '405', '285']); assert.equal(result.rootChildSpiritIds.length, 0); }); test('buildGroupParents 多 group 按 ID 升序', () => { const spirits = [ { id: '1', group: '32', indexOfLayer: '1' }, { id: '2', group: '1', indexOfLayer: '2' }, { id: '3', group: '1', indexOfLayer: '3' }, ]; const result = buildGroupParents(spirits); assert.deepEqual(result.groupParents.map(g => g.name), ['group-1', 'group-32']); }); test('buildGroupParents group=0 Spirit 直挂 Layer 根', () => { const spirits = [ { id: '10', group: '0', indexOfLayer: '1' }, { id: '20', group: '0', indexOfLayer: '2' }, { id: '30', group: '2', indexOfLayer: '3' }, ]; const result = buildGroupParents(spirits); assert.equal(result.groupParents.length, 1); assert.deepEqual(result.rootChildSpiritIds, ['10', '20']); }); test('buildGroupParents 按 IndexOfLayer 排序子节点', () => { const spirits = [ { id: 'c', group: '1', indexOfLayer: '3' }, { id: 'a', group: '1', indexOfLayer: '1' }, { id: 'b', group: '1', indexOfLayer: '2' }, ]; const result = buildGroupParents(spirits); assert.deepEqual(result.groupParents[0].childSpiritIds, ['a', 'b', 'c']); });