task(E5): CSV seat list export

This commit is contained in:
Agent Zero
2026-08-27 23:55:11 +02:00
parent 0696df1e0d
commit 6a214c2e9c
2 changed files with 43 additions and 0 deletions
+26
View File
@@ -82,3 +82,29 @@ describe('countSeats', () => {
expect(Object.keys(result.byRow).length).toBe(1);
});
});
describe('exportSeatListCSV', () => {
const svc = new SeatingService();
it('erzeugt CSV mit Header und Stuhl-Zeilen', () => {
const els = svc.createSeatingRow(0, 0, 'layer-1', { count: 3 });
const csv = svc.exportSeatListCSV(els);
const lines = csv.split('\n');
expect(lines[0]).toBe('type,row_id,block_id,x,y');
expect(lines.length).toBe(4); // Header + 3 Stühle
expect(lines[1]).toContain('chair');
});
it('ignoriert Nicht-Stuhl-Elemente', () => {
const chairs = svc.createSeatingRow(0, 0, 'layer-1', { count: 2 });
const other: CADElement = {
id: 'x1', type: 'rect', layerId: 'l', x: 0, y: 0, width: 1, height: 1, properties: {},
} as unknown as CADElement;
const csv = svc.exportSeatListCSV([...chairs, other]);
expect(csv.split('\n').length).toBe(3); // Header + 2 Stühle
});
it('leere Eingabe ergibt nur Header', () => {
expect(svc.exportSeatListCSV([])).toBe('type,row_id,block_id,x,y');
});
});