/** * Prueft die Validierung der Server-Adresse. * * Kern: eine http://-Adresse wird abgewiesen, solange die App selbst ueber * https laeuft - sonst scheitert sie beim Kunden stumm mit "Keine Verbindung * zum Server". Ein Debug-Build auf http://localhost darf HTTP dagegen sehr * wohl, sonst waere ausgerechnet der Testbau unbenutzbar. * * Start: node tools/pruefe-serveradresse.mjs */ const { pruefeServerAdresse } = await import('../src/lib/serveradresse.ts'); const HTTPS = 'https:'; const HTTP = 'http:'; const faelle = [ { e: 'https://awl.data-it-solution.de', p: HTTPS, ok: true, name: 'Prod-Adresse ueber https' }, { e: 'https://10.0.2.2:8443', p: HTTPS, ok: true, name: 'IP mit Port ueber https' }, { e: 'http://10.0.2.2:8080', p: HTTPS, ok: false, name: 'HTTP bei https-App -> ABGEWIESEN (der eigentliche Fall)' }, { e: 'http://10.0.2.2:8080', p: HTTP, ok: true, name: 'HTTP bei http-App (Debug-Build) -> ERLAUBT' }, { e: 'HTTP://10.0.2.2:8080', p: HTTPS, ok: false, name: 'Grossschreibung wird auch erkannt' }, { e: ' https://awl.example ', p: HTTPS, ok: true, name: 'Leerzeichen aussen stoeren nicht' }, { e: '', p: HTTPS, ok: false, name: 'Leer' }, { e: ' ', p: HTTPS, ok: false, name: 'Nur Leerzeichen' }, { e: 'awl.data-it-solution.de', p: HTTPS, ok: false, name: 'Ohne Schema' }, { e: 'ftp://server', p: HTTPS, ok: false, name: 'Falsches Schema' }, { e: 'https://', p: HTTPS, ok: false, name: 'Schema ohne Host' }, ]; let fehler = 0; for (const f of faelle) { const r = pruefeServerAdresse(f.e, f.p); const okk = r.ok === f.ok; if (!okk) fehler++; console.log(`${okk ? 'OK ' : 'FEHL'} ${f.name}`); if (!r.ok) console.log(` -> ${r.meldung.slice(0, 90)}`); } console.log(fehler === 0 ? 'ALLE FAELLE KORREKT' : `${fehler} FEHLER`); process.exit(fehler === 0 ? 0 : 1);