2026-10-01 18:20:30 +03:00

22 lines
883 B
JavaScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { buildRowHierarchy } from './rowUtils.js';
test('row hierarchy uses row types when depth skips a level and keeps INPUT rows as siblings', () => {
const rows = [
{ row_type: 'ROOT', depth: 0, id: 'root' },
{ row_type: 'ITEM', depth: 2, id: 'item-1' },
{ row_type: 'INPUT', depth: 4, id: 'input-1' },
{ row_type: 'INPUT', depth: 4, id: 'input-2' },
{ row_type: 'ITEM', depth: 2, id: 'item-2' },
{ row_type: 'ROOT', depth: 0, id: 'next-root' },
];
const tree = buildRowHierarchy(rows);
assert.deepEqual(tree.map(({ id }) => id), ['root', 'next-root']);
assert.deepEqual(tree[0].subRows.map(({ id }) => id), ['item-1', 'item-2']);
assert.deepEqual(tree[0].subRows[0].subRows.map(({ id }) => id), ['input-1', 'input-2']);
assert.deepEqual(tree[0].subRows[0].subRows[0].subRows, []);
});