Files
houseplan-card/test/visual-matrix-fixture.test.mjs
T

24 lines
1.2 KiB
JavaScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { makeVisualMatrixFixture, VISUAL_MATRIX_COUNTS } from '../demo/fixtures/visual-matrix.mjs';
test('visual matrix fixture is deterministic and covers its declared geometry', () => {
const first = makeVisualMatrixFixture();
const second = makeVisualMatrixFixture();
const count = (field) => first.config.spaces.reduce((sum, space) => sum + (space[field]?.length || 0), 0);
assert.deepEqual(first, second);
assert.equal(first.config.spaces.length, VISUAL_MATRIX_COUNTS.spaces);
assert.equal(count('rooms'), VISUAL_MATRIX_COUNTS.rooms);
assert.equal(count('openings'), VISUAL_MATRIX_COUNTS.openings);
assert.equal(count('partitions'), VISUAL_MATRIX_COUNTS.partitions);
assert.equal(count('wall_columns'), VISUAL_MATRIX_COUNTS.columns);
});
test('visual matrix fixture keeps geometry ids unique per space', () => {
for (const space of makeVisualMatrixFixture().config.spaces) {
const ids = ['rooms', 'openings', 'partitions', 'wall_columns', 'decor']
.flatMap((field) => (space[field] || []).map((item) => item.id));
assert.equal(new Set(ids).size, ids.length, space.id);
}
});