Improve audit pipeline and outreach review

This commit is contained in:
2026-06-08 22:16:32 +02:00
parent ff18fc202e
commit 1695110e0a
34 changed files with 2792 additions and 238 deletions

View File

@@ -10,7 +10,7 @@ const leadsReviewPath = join(
"leads-review-table.tsx",
);
test("LeadsReviewTable uses compact card summaries with expandable review details", async () => {
test("LeadsReviewTable uses compact card summaries with modal review details", async () => {
const source = await readFile(leadsReviewPath, "utf8");
assert.doesNotMatch(source, /<table\b/i);
@@ -21,22 +21,22 @@ test("LeadsReviewTable uses compact card summaries with expandable review detail
assert.doesNotMatch(source, /<th\b/i);
assert.doesNotMatch(source, /min-w-\[/i);
assert.match(source, /Dialog/);
assert.match(source, /DialogContent/);
assert.match(source, /DialogHeader/);
assert.match(source, /DialogTitle/);
assert.match(source, /DialogDescription/);
assert.match(source, /max-h-\[calc\(100dvh-2rem\)\]/);
assert.match(source, /overflow-y-auto/);
assert.match(source, /Mehr anzeigen/);
assert.match(source, /Weniger anzeigen/);
assert.match(source, /aria-expanded=\{[^}]+\}/);
assert.match(source, /aria-controls=\{[^}]+\}/);
assert.match(source, /id=\{[^}]+\}/);
assert.match(
source,
/aria-expanded=\{[^}]+\}[\s\S]{0,160}aria-controls=\{[^}]+\}[\s\S]{0,160}(Mehr anzeigen|Weniger anzeigen)/i,
);
assert.match(
source,
/hidden=\{!?isExpanded\}/,
);
assert.doesNotMatch(source, /Weniger anzeigen/);
assert.doesNotMatch(source, /aria-expanded=\{[^}]+\}/);
assert.doesNotMatch(source, /aria-controls=\{[^}]+\}/);
assert.doesNotMatch(source, /hidden=\{!?isExpanded\}/);
const companyNameMatch = source.match(
/<p className="([^"]+)">\s*\{lead\.companyName\}\s*<\/p>/,
/<p className="([^"]+)"[^>]*>\s*\{lead\.companyName\}\s*<\/p>/,
);
assert.ok(
companyNameMatch !== null &&
@@ -110,3 +110,15 @@ test("LeadsReviewTable uses compact card summaries with expandable review detail
assert.match(source, /Sperren/);
assert.match(source, /Speichern/);
});
test("LeadsReviewTable exposes count filters and live status feedback", async () => {
const source = await readFile(leadsReviewPath, "utf8");
assert.match(source, /leadStatusFilters/);
assert.match(source, /setActiveFilter/);
assert.match(source, /Alle Leads/);
assert.match(source, /Hohe Priorit(?:aet|ät)/);
assert.match(source, /Gesperrt/);
assert.match(source, /role="status"/);
assert.match(source, /role="alert"/);
});