93 lines
4.4 KiB
JavaScript
93 lines
4.4 KiB
JavaScript
// 🧪 JS 07: Testsuite für Reguläre Ausdrücke & Textverarbeitung
|
|
|
|
if (typeof assert === "undefined") {
|
|
var assert = require("assert");
|
|
}
|
|
|
|
// ==========================================
|
|
// 1. Tests für istGueltigeEmail
|
|
// ==========================================
|
|
assert.strictEqual(istGueltigeEmail("max@mustermann.de"), true, "max@mustermann.de sollte gültig sein");
|
|
assert.strictEqual(istGueltigeEmail("user.name+tag@sub.domain.org"), true, "E-Mail mit Subdomain und Plus-Tag sollte gültig sein");
|
|
assert.strictEqual(istGueltigeEmail("dev123@code.io"), true, "dev123@code.io sollte gültig sein");
|
|
|
|
assert.strictEqual(istGueltigeEmail("max@domain"), false, "E-Mail ohne TLD (.de, .com) sollte ungültig sein");
|
|
assert.strictEqual(istGueltigeEmail("@domain.com"), false, "E-Mail ohne Benutzername sollte ungültig sein");
|
|
assert.strictEqual(istGueltigeEmail("keine-email"), false, "Reiner Text sollte ungültig sein");
|
|
assert.strictEqual(istGueltigeEmail(""), false, "Leerer String sollte ungültig sein");
|
|
assert.strictEqual(istGueltigeEmail(null), false, "null sollte ungültig sein");
|
|
|
|
// ==========================================
|
|
// 2. Tests für findeTelefonnummern
|
|
// ==========================================
|
|
const textMitNummern = "Kontakt: +49 170 1234567 oder per Festnetz 030 / 123456. Kein Datum 2024.";
|
|
const nummern = findeTelefonnummern(textMitNummern);
|
|
assert.deepStrictEqual(
|
|
nummern,
|
|
["+49 170 1234567", "030 / 123456"],
|
|
"Sollte Mobil- und Festnetznummern finden"
|
|
);
|
|
|
|
const mobilText = "Mobil: 0171-1234567 und 089 98765432.";
|
|
assert.deepStrictEqual(
|
|
findeTelefonnummern(mobilText),
|
|
["0171-1234567", "089 98765432"],
|
|
"Sollte Bindestrich- und Leerzeichen-Format erkennen"
|
|
);
|
|
|
|
assert.deepStrictEqual(findeTelefonnummern("Keine Telefonnummer hier im Jahr 2025!"), [], "Sollte leeres Array bei keinen Treffern liefern");
|
|
assert.deepStrictEqual(findeTelefonnummern(""), [], "Leerer Text sollte [] liefern");
|
|
|
|
// ==========================================
|
|
// 3. Tests für extrahiereHashtags
|
|
// ==========================================
|
|
const post = "Lerne #javascript und #webdev mit modernen #es6_features!";
|
|
const tags = extrahiereHashtags(post);
|
|
assert.deepStrictEqual(
|
|
tags,
|
|
["#javascript", "#webdev", "#es6_features"],
|
|
"Sollte alle Hashtags im Text finden"
|
|
);
|
|
|
|
assert.deepStrictEqual(extrahiereHashtags("Ein normaler Satz ohne Tags."), [], "Ohne Hashtags sollte [] zurückkommen");
|
|
assert.deepStrictEqual(extrahiereHashtags(""), [], "Leerer String sollte [] zurückgeben");
|
|
|
|
// ==========================================
|
|
// 4. Tests für maskiereKreditkarte
|
|
// ==========================================
|
|
const kkText = "Meine Karte ist 1234-5678-9012-3456.";
|
|
assert.strictEqual(
|
|
maskiereKreditkarte(kkText),
|
|
"Meine Karte ist ****-****-****-3456.",
|
|
"16-stellige Karte mit Bindestrichen sollte maskiert werden"
|
|
);
|
|
|
|
const kkText2 = "Karten: 1111 2222 3333 4444 und 5555666677778888";
|
|
assert.strictEqual(
|
|
maskiereKreditkarte(kkText2),
|
|
"Karten: ****-****-****-4444 und ****-****-****-8888",
|
|
"Mehrere Karten mit Leerzeichen und durchgehend sollten maskiert werden"
|
|
);
|
|
|
|
assert.strictEqual(
|
|
maskiereKreditkarte("Keine Kreditkarte vorhanden."),
|
|
"Keine Kreditkarte vorhanden.",
|
|
"Text ohne Kreditkarten darf nicht verändert werden"
|
|
);
|
|
|
|
// ==========================================
|
|
// 5. Tests für istStarkesPasswort
|
|
// ==========================================
|
|
assert.strictEqual(istStarkesPasswort("Sicher123!"), true, "Sicher123! sollte stark sein");
|
|
assert.strictEqual(istStarkesPasswort("P@ssw0rd2024"), true, "P@ssw0rd2024 sollte stark sein");
|
|
assert.strictEqual(istStarkesPasswort("Mein#Geheimnis9"), true, "Mein#Geheimnis9 sollte stark sein");
|
|
|
|
assert.strictEqual(istStarkesPasswort("S1!a"), false, "Zu kurzes Passwort (< 8 Zeichen) sollte false liefern");
|
|
assert.strictEqual(istStarkesPasswort("sicher123!"), false, "Ohne Großbuchstaben sollte false liefern");
|
|
assert.strictEqual(istStarkesPasswort("SICHER123!"), false, "Ohne Kleinbuchstaben sollte false liefern");
|
|
assert.strictEqual(istStarkesPasswort("SicheresPasswort!"), false, "Ohne Zahl sollte false liefern");
|
|
assert.strictEqual(istStarkesPasswort("Sicher12345"), false, "Ohne Sonderzeichen sollte false liefern");
|
|
assert.strictEqual(istStarkesPasswort(""), false, "Leerer String sollte false liefern");
|
|
assert.strictEqual(istStarkesPasswort(null), false, "null sollte false liefern");
|
|
|
|
console.log("✅ Alle Tests in JS 07 (Regex & Textverarbeitung) erfolgreich bestanden!");
|