lsa-planer

LSA-Planer Professional – Planungssoftware für Lichtsignalanlagen nach RiLSA 2015 und § 45 StVO. EUPL-1.2.

/ tests domain zufahrtsverweis.test.ts

1,9 KB Rohdatei
tests/domain/zufahrtsverweis.test.ts — 46 Zeilen
1 import { describe, expect, it } from 'vitest';
2 import { parseProject } from '@/domain/model/schema';
3
4 /*
5 * Befund 60, behoben in Fassung 5.9.0.
6 *
7 * Alle uebrigen toten Verweise werden beim Einlesen gemeldet - Konflikte,
8 * Phasen und Verkehrsstaerken auf fehlende Signalgruppen, Haltlinien auf
9 * fehlende Zufahrten, Fahrlinien auf fehlende Haltlinien und Signalgruppen.
10 * Nur die Zufahrtszuordnung der Signalgruppe wurde ohne Meldung auf null
11 * gesetzt. Der Bearbeiter erfuhr nichts davon; der Einlesedialog erscheint gar
12 * nicht, und beim naechsten Speichern ist die Zuordnung endgueltig weg.
13 */
14 describe('Toter Zufahrtsverweis einer Signalgruppe', () => {
15 it('meldet den aufgeloesten Zufahrtsverweis, statt ihn stumm zu entfernen', () => {
16 const { project, issues } = parseProject({
17 intersection: { arms: [{ id: 'arm1', name: 'Nord' }] },
18 signalGroups: [{ id: 'a', name: 'K1', mode: 'kfz', armId: 'arm-weg' }],
19 });
20
21 expect(project.signalGroups[0]!.armId).toBeNull();
22 expect(issues.some((i) => i.path === 'signalGroups[0].armId' && i.severity === 'warnung')).toBe(
23 true,
24 );
25 });
26
27 it('laesst eine vorhandene Zufahrtszuordnung unangetastet und meldet nichts', () => {
28 const { project, issues } = parseProject({
29 intersection: { arms: [{ id: 'arm1', name: 'Nord' }] },
30 signalGroups: [{ id: 'a', name: 'K1', mode: 'kfz', armId: 'arm1' }],
31 });
32
33 expect(project.signalGroups[0]!.armId).toBe('arm1');
34 expect(issues.filter((i) => i.path.startsWith('signalGroups'))).toEqual([]);
35 });
36
37 it('schweigt bei einer Signalgruppe ohne Zufahrtszuordnung', () => {
38 const { project, issues } = parseProject({
39 intersection: { arms: [{ id: 'arm1', name: 'Nord' }] },
40 signalGroups: [{ id: 'a', name: 'K1', mode: 'kfz', armId: null }],
41 });
42
43 expect(project.signalGroups[0]!.armId).toBeNull();
44 expect(issues.filter((i) => i.path.startsWith('signalGroups'))).toEqual([]);
45 });
46 });