test(ui): cover app.runs.tsx mapping helpers and SavedViews flow - #8748
test(ui): cover app.runs.tsx mapping helpers and SavedViews flow#8748hurryup52 wants to merge 1 commit into
Conversation
mapSignalFidelity, mapAgentRunKind, mapAgentRunBundle, and SavedViews had zero direct test coverage. Export all four (no behavior change) and add branch-level tests: every mapSignalFidelity/mapAgentRunKind branch, mapAgentRunBundle's repo-fallback chain and surface/scoring-snapshot mappings and snapshot-replay construction, and a SavedViews render test covering save/apply/remove. Closes JSONbored#8701
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Tip ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-26 02:36:32 UTC
Review summary Nits — 4 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. Visual previewClick any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy. Scroll preview
A short scroll-through clip (desktop) — click either thumbnail to open the full animation. Evidence for scroll-linked behavior a single screenshot can't show. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
|
This pull request changes UI/visual code but its screenshot evidence is incomplete. Every required viewport × theme combination needs its own before/after image pair in a labeled table row (e.g. "Desktop · Light | before | after"). Still missing: Desktop · Dark, Tablet · Dark, Mobile · Dark. Please resubmit with the remaining rows filled in. See https://github.com/JSONbored/loopover/blob/main/.claude/skills/contributing-to-loopover/SKILL.md for the exact format and examples. This is an automated maintenance action. |










Summary
app.runs.tsx's previously-untested pure mapping helpers (mapSignalFidelity,mapAgentRunKind,mapAgentRunBundle) and theSavedViewssave/apply/remove flow. No production behavior changes — the only non-test edit is adding theexportkeyword to four already-existing functions/types so the test file can import them directly.Scope
type(scope): short summaryConventional Commit format, for examplefix(api): restore profile access checks.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Closes #123) — a linked open issue is required for every contributor PR.Validation
git diff --checknpm run actionlint— skipped, no.github/workflows/composite-action changes in this diff.npm run typecheck(vianpm run ui:typecheck, which builds@loopover/ui-kitthen typechecks@loopover/ui+@loopover/ui-miner— clean)npm run test:coveragelocally — this repo's owncodecov/patchgate only measuressrc/**;apps/**(this change) is explicitly excluded (confirmed directly againstvitest.config.ts/codecov.yml, and issue test(ui): app.runs.tsx's pure mapping helpers and SavedViews flow have zero direct test coverage #8701's own body states the same). Ran the applicable local equivalent instead:npx vitest run src/routes/app.runs.test.tsx(35/35 passed) and the fullnpm run ui:test(683/683 passed across@loopover/ui+@loopover/ui-miner).npm run test:workers— skipped, no Workers/backend code touched.npm run build:mcp— ran for local diagnostics only (unrelated package, not part of this diff).npm run test:mcp-pack— skipped, no MCP package changes in this diff.npm run ui:openapi:check— skipped, no API/OpenAPI schema changes.npm run ui:lint— 0 errors (89 pre-existingreact-refresh/only-export-componentswarnings across the codebase, 4 of which now also point atapp.runs.tsx's newly-exported functions — same pre-existing pattern already present on ~20 other route files in this repo, not something this PR introduces as a new category).npm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderate— 5 pre-existing high-severity advisories in theeslint/minimatch/brace-expansiondev-dependency chain, unrelated to this change (zero new dependencies added).If any required check was skipped, explain why:
test:workers/test:mcp-pack/ui:openapi:check/actionlintall skipped as not applicable — this diff touches exactly two files underapps/loopover-ui/src/routes/, nothing else.npm run test:ciwas also attempted; it failed at the unshardedtest:coveragestep, but every one of the 49 failing test files is inpackages/loopover-mcp/packages/loopover-miner's CLI test suites (stale/missingdist/build artifacts for those two unrelated packages in a fresh clone — confirmed zero diff between this branch andupstream/mainfor every failing file, and confirmed zero failures anywhere underapps/loopover-ui). Ranui:lint/ui:typecheck/ui:test/ui:builddirectly instead, all green, per the boxes above.Safety
UI Evidencesection below — N/A, this PR has no visible/behavioral UI change (test-only; the fourexportkeyword additions are a no-op at runtime).UI Evidence
N/A — no visible or behavioral UI change. This PR only adds test coverage and makes four already-existing functions/types (
mapAgentRunBundle,mapAgentRunKind,mapSignalFidelity,SavedViews, plus theirAgentRun/AgentRunBundletypes) importable from the test file via theexportkeyword; nothing about their behavior or rendering changes.Notes
mapSignalFidelity(all 4 branches),mapAgentRunKind(all 4 branches, including both inputs that feed the sharedexplain-blockersbranch),mapAgentRunBundle(the full repo-fallback chain, surface→source/boundary mapping, scoring-snapshot fallback, and counterfactual-pooling/snapshot-replay construction), andSavedViews(save/apply/remove render test, plus the disabled-while-default-filters case and localStorage persistence across remounts).