lsa-planer

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

/ tests ui zufahrtFahrstreifenzahl.test.ts

2,1 KB Rohdatei
tests/ui/zufahrtFahrstreifenzahl.test.ts — 46 Zeilen
1 import { describe, expect, it } from 'vitest';
2 import { readFileSync } from 'node:fs';
3
4 /*
5 * Die Fahrstreifenzahl der ZUFAHRT nimmt keine gebrochene Zahl mehr an.
6 *
7 * Drei Wege hat die Fassung 5.10.0 geschlossen, auf denen eine
8 * Fahrstreifenzahl wie 2,5 ins Projekt kam: das Einlesen (`ganzzahlAbrunden`
9 * in model/schema.ts) und die Spalte "Fahrstreifen" der Signalgruppentabelle
10 * (dieselbe Option an `numberCell`). Der vierte blieb offen und wurde vom
11 * Bearbeiter gemeldet: dasselbe Feld an der Zufahrt in der Ansicht "Projekt".
12 *
13 * Eine Anzahl ist keine Messgroesse. Ueber die Zufahrt geht sie in
14 * `saturationFlow` ein - eine halbe Fahrstreifenbreite gibt es dort nicht, und
15 * der Wert stand bis zum naechsten Oeffnen in Rechnung, Tabelle und Ausdruck.
16 *
17 * Geprueft wird am Quelltext und nicht am gebauten Feld: Der Aufruf liegt tief
18 * in einer Tabellenzeile der Zufahrtsliste, und die Wache soll sagen, WELCHE
19 * Stelle die Option traegt - genau die war vergessen worden. Das Verhalten der
20 * Option selbst bewacht tests/ui/fahrstreifenzahl.test.ts.
21 */
22
23 const PROJEKTANSICHT = readFileSync('src/ui/views/projectView.ts', 'utf8');
24
25 describe('Fahrstreifenzahl der Zufahrt', () => {
26 it('traegt dieselbe Ganzzahlgrenze wie das Feld der Signalgruppentabelle', () => {
27 // Der Ausschnitt um den Aufruf: von der uebergebenen Fahrstreifenzahl bis
28 // zum Ende seiner Optionen.
29 const start = PROJEKTANSICHT.indexOf('arm.lanes,');
30 expect(start, 'Aufruf mit arm.lanes nicht gefunden').toBeGreaterThan(-1);
31 const ausschnitt = PROJEKTANSICHT.slice(start, start + 1200);
32
33 expect(ausschnitt, 'Das Feld begrenzt weiterhin nur min, max und step').toContain(
34 'ganzzahlAbrunden: true',
35 );
36 });
37
38 it('nennt daneben den Grund - eine Anzahl ist keine Messgroesse', () => {
39 // Ohne Begruendung faellt die Option beim naechsten Umbau als
40 // ueberfluessig wieder heraus; im Feld der Signalgruppentabelle steht sie
41 // aus demselben Grund.
42 const start = PROJEKTANSICHT.indexOf('arm.lanes,');
43 const ausschnitt = PROJEKTANSICHT.slice(start, start + 1200);
44 expect(ausschnitt.toLowerCase()).toContain('anzahl');
45 });
46 });