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.
15 lines
1.3 KiB
JavaScript
15 lines
1.3 KiB
JavaScript
import {test} from 'node:test';import assert from 'node:assert/strict';import {contactLinks} from '../src/contactLinks.mjs';
|
|
test('mail aliases produce one safe link per recipient and keep invalid old text visible',()=>{
|
|
assert.deepEqual(contactLinks('email_private','a+tag@example.test, b@example.org'),[{label:'a+tag@example.test',href:'mailto:a%2Btag%40example.test'},{label:'b@example.org',href:'mailto:b%40example.org'}]);
|
|
assert.deepEqual(contactLinks('mail_business','Altwert'),[{label:'Altwert',href:null}]);
|
|
assert.equal(contactLinks('email','a@example.test\r\nBcc:x@example.org')[0].href,null);
|
|
});
|
|
test('website fields open only absolute HTTP URLs without user information',()=>{
|
|
assert.equal(contactLinks('url_business','https://example.test/path?q=x')[0].href,'https://example.test/path?q=x');
|
|
for(const value of ['javascript:alert(1)','data:text/html,test','https://user:secret@example.test','https://example.test\r\n/','www.example.test'])assert.equal(contactLinks('url_business',value)[0].href,null);
|
|
});
|
|
test('phone aliases preserve dialable legacy separators without changing exponent-like numbers',()=>{
|
|
assert.equal(contactLinks('fax','+49 (30) 123/45')[0].href,'tel:+493012345');
|
|
for(const value of ['1e3','Infinity','0x20','kein Telefon'])assert.equal(contactLinks('phone_business',value)[0].href,null);
|
|
});
|