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, []); });