47 lines
1.8 KiB
JavaScript
47 lines
1.8 KiB
JavaScript
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']);
|
|
}); |