mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-09-12 13:18:31 +00:00
fix(playlists): stay within the shipped Tailwind class set
Reverts the regenerated static/tailwind.min.css and reworks the tuning-check markup to use only classes already in the committed sheet. Regenerating that file is not reproducible off CI: nothing pins tailwindcss, autoprefixer or caniuse-lite, so a local `npx -y tailwindcss@3.4.19` resolves different browser data and rewrites unrelated bytes -- a clean checkout of main rebuilds with the -webkit-backdrop-filter prefixes dropped. Committing that output fails the tailwind-fresh gate no matter how many times it is regenerated. Six utilities were new: bg-fb-good/10, border-fb-accent/50, hover:bg-fb-accent/10, list-disc, list-inside, max-h-48, plus gap-x-3/gap-y-2. Substituted bg-fb-good/30, the amber border already used by the mismatch state, hover:bg-fb-card, a literal bullet in a div, max-h-32 and gap-3. Visual intent is unchanged. The removal-confirm test pinned the <li> markup; it now accepts either wrapper, since what it guards is that every song is named and escaped ahead of any DELETE, not which element wraps it. Signed-off-by: ChrisBeWithYou <christian.a.cowan@gmail.com>
This commit is contained in:
@@ -261,8 +261,11 @@ test('the check itself never mutates the playlist', () => {
|
||||
|
||||
test('bulk removal names every song and is confirmed before any DELETE', () => {
|
||||
const body = extractBlock(PL_SRC, 'async function applyTuningCheck(');
|
||||
// The confirm is built from the doomed titles …
|
||||
assert.match(body, /doomed\.map\(\(s\) => '<li>' \+ esc\(s\.title \|\| s\.filename\)/);
|
||||
// The confirm is built from the doomed titles, each escaped. The row markup
|
||||
// moved from <li> to a bulleted <div> so the confirm needs no Tailwind class
|
||||
// the committed CSS lacks — what matters is that every song is named and
|
||||
// escaped, not which element wraps it.
|
||||
assert.match(body, /doomed\.map\(\(s\) => '<(?:li|div)>[^']*' \+ esc\(s\.title \|\| s\.filename\)/);
|
||||
// … it is awaited, and an early return happens before the delete loop.
|
||||
const confirmAt = body.indexOf('uiConfirm');
|
||||
const bailAt = body.indexOf('if (!ok) return;');
|
||||
|
||||
Reference in New Issue
Block a user