47 lines
1.5 KiB
Markdown
47 lines
1.5 KiB
Markdown
# Wegwichtel Editor v3
|
|
|
|
Dieses Paket ergänzt den einfachen Streckeneditor und die zugehörigen Tests.
|
|
|
|
## Datenbankschema
|
|
|
|
Für bestehende SQLite-Datenbanken liegt weiterhin eine Migration vor:
|
|
|
|
```bash
|
|
sqlite3 <pfad-zur-wegwichtel-db> < database/migrations/20260901_add_route_activated_at.sql
|
|
```
|
|
|
|
Für neu erzeugte Datenbanken muss `database/schema.sql` die Spalte direkt in der `routes`-Tabelle enthalten:
|
|
|
|
```sql
|
|
activated_at DATETIME NULL
|
|
```
|
|
|
|
Falls das Paket ohne bereits angepasste `database/schema.sql` eingespielt wird, kann die Datei einmalig im Repository angepasst werden:
|
|
|
|
```bash
|
|
node scripts/apply-editor-schema.mjs
|
|
```
|
|
|
|
Danach sollte `database/schema.sql` mit committed werden.
|
|
|
|
## Tests
|
|
|
|
```bash
|
|
node --check public/js/editor-ui.js
|
|
npm test -- test/editor-ui.test.js
|
|
npm test -- test/editor-database-schema.test.js
|
|
npm run test:coverage
|
|
```
|
|
|
|
## SonarQube
|
|
|
|
Der frühere HTML-Smell durch `role="status"` am Editorstatus wurde entfernt. Der Status ist jetzt ein semantisches `<output>` mit `aria-live="polite"`.
|
|
|
|
|
|
## v4 SQLite-STRICT und Sonar-Hotspot
|
|
|
|
- `database/schema.sql` enthält `routes.activated_at` direkt im Initialschema als `TEXT DEFAULT NULL`.
|
|
- Die Migration verwendet ebenfalls `TEXT DEFAULT NULL`, damit bestehende SQLite-STRICT-Datenbanken kompatibel bleiben.
|
|
- `scripts/apply-editor-schema.mjs` enthält keine Schema-Merge-Regex mehr; der frühere Hilfsmechanismus wurde durch eine einfache lineare Schema-Prüfung ersetzt.
|
|
- `test/editor-database-schema.test.js` prüft bewusst `TEXT DEFAULT NULL` und verbietet `DATETIME` in der STRICT-Route-Tabelle.
|