Prove no Tailwind utility class remains in resources/ or tests/

StylesheetsTest.php's new test runs DesignGuard's own family table (check
(i)) over resources/views, resources/js, src, tests/Browser and
tests/Feature — the guard turned on the package's own source, so the two
never drift apart. tests/Feature/DesignGuardTest.php and
tests/Fixtures/design-guard/ carry Tailwind on purpose and are left out.

The scan found Tailwind-shaped class strings used as caller classes in 21
test files (a component test proving a caller's class lands on the root or
a caller's size wins, mostly), left over from before Tailwind cleared the
whole stack: replaced with neutral application-style names (`app-hero-icon`)
or, where one already carries the right meaning, an `md-*` class
(`md-text-end`, `md-ink-warning`). BreakpointsTest.php's own heredoc probe —
which needs a genuine Tailwind-shaped breakpoint prefix to prove its
detection works — now builds that one string from a placeholder at runtime,
so its own source stays clean for this same scan.

Plan step 42 (Phase F), Part A.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qwx5USif3wFFmxtHg5U1g9
This commit is contained in:
Andreas Reinhold / reini
2026-09-15 09:32:36 +02:00
co-authored by Claude Sonnet 5
parent 3d9e494e22
commit 6897306e18
22 changed files with 95 additions and 65 deletions
+8 -3
View File
@@ -92,15 +92,20 @@ it('scans the showcase example heredocs too, where the package teaches its own m
// heredocs deep to the same pattern and helper the first test above uses.
$directory = sys_get_temp_dir().'/breakpoint-heredoc-probe-'.uniqid();
File::ensureDirectoryExists($directory);
File::put($directory.'/probe.blade.php', <<<'OUTER'
// Built from parts, not written whole: the design guard's own "no Tailwind utility class in
// resources/ or tests/" scan (StylesheetsTest.php) reads this file's raw source too, and a
// real Tailwind breakpoint prefix sitting in a class attribute here would be exactly what
// that scan looks for — the placeholder keeps this file's own source clean of one.
File::put($directory.'/probe.blade.php', str_replace('__BREAKPOINT__', 'md:', <<<'OUTER'
@php
$examples = [
'Probe' => <<<'BLADE'
<div class="md:flex"></div>
<div class="__BREAKPOINT__flex"></div>
BLADE,
];
@endphp
OUTER);
OUTER));
try {
$pattern = '/(?<![\w@-])(?:max-)?(?:sm|md|lg|xl|2xl):[a-z\[(-]/';