Erweitere VoTiAn NG um Fachfunktionen und verbessere die Listenoberfläche
Ergänze Auftragsbearbeitung, Disposition, Stammdaten, Kunden- und Transporteurportale, Lagerverwaltung, Abrechnung, Exporte und Statistik. Füge Kontoeinstellungen, Mitteilungen, Automatikdienste und Betriebsstatus sowie die zugehörigen Tests und PHP-Abgleichsdokumentation hinzu. Vergrößere die persönlichen Auftragslisten auf einheitliche Höhen und richte Statusanzeigen sowie die Ranking-Vorschau-Steuerelemente bündig aus. Validierung: 44 Frontendtests und Produktionsbuild erfolgreich. Backend funktional unverändert gegenüber dem vollständigen Lauf mit 1.624 erfolgreichen und drei übersprungenen Tests. Layout im Browser und lokale Bereitstellung geprüft.
This commit is contained in:
1 parent
363bc27c26
commit
781a2b82dc
1165 files changed
+74986
-1028
No files matched your search
@@ -0,0 +1,14 @@
|
||||
import test from 'node:test';import assert from 'node:assert/strict';
|
||||
import {headquartersDropAllowed as allowed} from '../src/dispositionDropTime.mjs';
|
||||
const base={day:'2026-10-19',units:6,serverNow:'2026-10-19T10:00:00',slot:60};
|
||||
test('HQ drops preserve exact time boundary and advance while the board remains open',()=>{
|
||||
assert.equal(allowed(base),true);assert.equal(allowed({...base,slot:59}),false);assert.equal(allowed({...base,elapsedMs:1}),false);assert.equal(allowed({...base,slot:61,elapsedMs:600000}),true);assert.equal(allowed({...base,slot:61,elapsedMs:600001}),false);
|
||||
});
|
||||
test('database date crosses midnight independently of browser time zone',()=>{
|
||||
assert.equal(allowed({...base,day:'2026-10-20',slot:0}),true);assert.equal(allowed({...base,day:'2026-10-18',slot:143}),false);
|
||||
assert.equal(allowed({...base,serverNow:'2026-10-19T23:59:59',day:'2026-10-20',slot:0,elapsedMs:1000}),true);
|
||||
assert.equal(allowed({...base,serverNow:'2026-10-19T23:59:59',day:'2026-10-20',slot:0,elapsedMs:1001}),false);
|
||||
});
|
||||
test('configured override permits elapsed time; missing server time does not invent a current clock',()=>{
|
||||
assert.equal(allowed({...base,slot:0,allowPastDrops:true}),true);assert.equal(allowed({...base,serverNow:undefined}),false);assert.equal(allowed({...base,serverNow:'invalid'}),false);assert.equal(allowed({...base,units:0}),false);
|
||||
});
|
||||
Reference in new issue
Block a user