check:boundary passed on the very leak it was written for. The pattern was anchored to `includeItemTypes:` at the query site, so searchScope.ts assigning the same array to a named const and dereferencing it one indirection away was invisible — through every green CI run. The check now matches an array literal naming two or more Jellyfin item types anywhere in src/, catching a const, a Record value, a function return, and an inline query alike. Deliberate limits kept: two adjacent literals required (single-type presentation stays legal), string literals required (item.type === "Audio" is display logic), explicit type list (so ["High","Low"] produces no noise). Verified all five cases: reintroducing the original SCOPE_ITEM_TYPES fails; a new const ["Movie","Series"] fails; the same array in a .test.ts passes; itemType: "Movie" / item.type === / ["High","Low"] pass; a 5th allowlist entry fails on the new cap. Allowlist 1→3 entries, capped at 4 so the next exception forces a conversation rather than a one-line append: - GenericMediaListPage: grid styling over a self-declared itemType — presentation, changes only with a UI redesign. - DownloadedBrowse: borderline, leans domain (the container set grows when Jellyfin adds a container type). Allowlisted with a TODO for a backend MediaItem.isContainer flag. The header now names what the check still cannot see — run-time-built sets, types split across variables, switch/|| taxonomy — and CLAUDE.md states that a green check:boundary is not proof. That matters given this check passed on its own founding violation for months. Also: both gates wired into test-all.sh, which called `bun run test` without --run and would have hung in watch mode. Corrected the Dockerfile comment describing the Windows toolchain as mingw/GNU — it is MSVC via cargo-xwin (GNU cannot bundle NSIS from Linux).
27 lines
525 B
Bash
Executable File
27 lines
525 B
Bash
Executable File
#!/bin/bash
|
|
# Run all tests (frontend and backend)
|
|
|
|
set -e
|
|
|
|
echo "🧪 Running all tests..."
|
|
echo ""
|
|
|
|
echo "📦 Running frontend tests..."
|
|
bun run test --run
|
|
|
|
echo ""
|
|
echo "🦀 Running Rust tests..."
|
|
cd src-tauri
|
|
cargo test
|
|
cd ..
|
|
|
|
echo ""
|
|
echo "🚧 Checking architectural gates..."
|
|
# Boundary tripwire (DR-094): no Jellyfin taxonomy in the presentation layer.
|
|
bun run check:boundary
|
|
# Traceability coverage (DR-093): fails below 50%, or above 100% (miscount).
|
|
bun run traces:coverage
|
|
|
|
echo ""
|
|
echo "✅ All tests passed!"
|