import { describe, expect, it } from 'vitest'; import { parseProject } from '@/domain/model/schema'; /* * Befund 60, behoben in Fassung 5.9.0. * * Alle uebrigen toten Verweise werden beim Einlesen gemeldet - Konflikte, * Phasen und Verkehrsstaerken auf fehlende Signalgruppen, Haltlinien auf * fehlende Zufahrten, Fahrlinien auf fehlende Haltlinien und Signalgruppen. * Nur die Zufahrtszuordnung der Signalgruppe wurde ohne Meldung auf null * gesetzt. Der Bearbeiter erfuhr nichts davon; der Einlesedialog erscheint gar * nicht, und beim naechsten Speichern ist die Zuordnung endgueltig weg. */ describe('Toter Zufahrtsverweis einer Signalgruppe', () => { it('meldet den aufgeloesten Zufahrtsverweis, statt ihn stumm zu entfernen', () => { const { project, issues } = parseProject({ intersection: { arms: [{ id: 'arm1', name: 'Nord' }] }, signalGroups: [{ id: 'a', name: 'K1', mode: 'kfz', armId: 'arm-weg' }], }); expect(project.signalGroups[0]!.armId).toBeNull(); expect(issues.some((i) => i.path === 'signalGroups[0].armId' && i.severity === 'warnung')).toBe( true, ); }); it('laesst eine vorhandene Zufahrtszuordnung unangetastet und meldet nichts', () => { const { project, issues } = parseProject({ intersection: { arms: [{ id: 'arm1', name: 'Nord' }] }, signalGroups: [{ id: 'a', name: 'K1', mode: 'kfz', armId: 'arm1' }], }); expect(project.signalGroups[0]!.armId).toBe('arm1'); expect(issues.filter((i) => i.path.startsWith('signalGroups'))).toEqual([]); }); it('schweigt bei einer Signalgruppe ohne Zufahrtszuordnung', () => { const { project, issues } = parseProject({ intersection: { arms: [{ id: 'arm1', name: 'Nord' }] }, signalGroups: [{ id: 'a', name: 'K1', mode: 'kfz', armId: null }], }); expect(project.signalGroups[0]!.armId).toBeNull(); expect(issues.filter((i) => i.path.startsWith('signalGroups'))).toEqual([]); }); });