Remove dead frontend modules; add tests, a11y, and ESLint fixes #321
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:open_issues
agents
agent:security_audit
agent:verify
area
timecurve
arena
arena-v2
audit
block:feature_review
block:security
bug
contracts
design
devops
docs
documentation
enhancement
epic
feature
frontend
indexer
low priority
megaeth
operations
ops
performance
QA
qa checklist
referrals
removal
security
smart-contracts
tech-debt
testing
time-arena
timecurve
visual-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/yieldomega#321
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
Gap analysis follow-up from #309.
Current codebase
Dead/orphan (zero imports):
frontend/src/pages/arena/TimerHeroLiveBuys.tsxfrontend/src/pages/arena/ArenaBuyModals.tsxfrontend/e2e/arena-live-buys-modals.spec.ts(ignored inplaywright.config.ts)Untested major modules (~1600+ LOC):
ArenaSimplePage.tsx,ArenaWarbowHeroPanel.tsx,ArenaCharmCredCard.tsxuseArenaSaleSession.ts,WalletProfileModal.tsx(sections tested only)ESLint: 21 warnings —
react-refresh/only-export-componentsin arena helpers;react-hooks/exhaustive-depsinuseArenaSaleSession.tsL1245, L1605.A11y gaps: WarBow
listboxwithout roving tabindex/arrow keys; buy CTA lacks contextaria-label; modal focus-trap untested.Why needed
Approved: Remove (not archive) dead modules; add tests for major components; fix accessibility and ESLint warnings.
Constraints / guardrails
ArenaLiveBuysActivitySectiononArenaProtocolPage).ArenaTimerPodiumCarousel.test.tsx,WalletProfileModalSections.test.tsx).Relevant files
frontend/src/pages/arena/ArenaWarbowHeroPanel.tsxfrontend/src/pages/arena/useArenaSaleSession.tsfrontend/playwright.config.tsdocs/testing/frontend-content-audit.mdRecommended direction
TimerHeroLiveBuys.tsx,ArenaBuyModals.tsx,arena-live-buys-modals.spec.ts; removetestIgnoreif spec deleted.ArenaWarbowHeroPanel,ArenaCharmCredCard; smoke tests forArenaSimplePagekey regions; hook tests foruseArenaSaleSessionsubmit paths.ArenaSimplePage).Acceptance criteria
npm run lintzero warnings insrc/pages/arena/(or repo-wide if scoped).Test plan
cd frontend && npm run typecheck && npm run lint && npm test.bash scripts/e2e-anvil.shafter Playwright config change.Attack / abuse test plan
Verification criteria
rg TimerHeroLiveBuys/ArenaBuyModalsreturns no imports.npm testoutput.mentioned in issue #309
mentioned in commit
765cffbaf5mentioned in merge request !468
mentioned in commit
85d54aa36dmentioned in commit
dfbf2af670mentioned in merge request !477
mentioned in commit
0cf96cad88mentioned in commit
551cdb0681Verification — issue #321 (FAIL — not ready to close)
Verified on
main(2026-06-14). No implementation branch or commits referencing #321 were found.Acceptance criteria
frontend/src/pages/arena/TimerHeroLiveBuys.tsx,ArenaBuyModals.tsx, andfrontend/e2e/arena-live-buys-modals.spec.tsstill present.playwright.config.tsstill hastestIgnore: /arena-live-buys-modals\.spec\.ts/. Zero imports infrontend/src(rgfinds only the module definitions), but files were not deleted per approval.ArenaWarbowHeroPanel.test.*,ArenaCharmCredCard.test.*,ArenaSimplePage.test.*, oruseArenaSaleSession.test.*.npm test: 116 files / 632 tests — none target the listed untested modules.ArenaWarbowHeroPanel.tsxL205–241:role="listbox"/role="option"buttons with click only — no rovingtabIndex, noArrowUp/ArrowDownhandlers. Contrast: token dropdown inArenaSimplePage.tsxL218–255 has listbox keyboard nav. Buy CTA (arena-simple-buy-charm) has no contextaria-label(only visible text "Buy").npm run lintzero warnings insrc/pages/arena/npx eslint src/pages/arena/: 19 warnings (18×react-refresh/only-export-components, 2×react-hooks/exhaustive-depsinuseArenaSaleSession.ts). Repo-widenpm run lint: 21 warnings.npm run typecheckcd frontend && npm run typecheck— exit 0.npm testcd frontend && npm test— 116 files, 632 tests, all passed.rg TimerHeroLiveBuys/ArenaBuyModalsno importsfrontend/src; files themselves still exist (see first row).Attack / abuse test plan
WalletProfileModalSections.test.tsxcovers section rendering only; no focus-trap or return-focus tests.rgforfocus-trap/EscapeunderWalletProfile*— no matches.Optional test plan
bash scripts/e2e-anvil.shFollow-ups
frontend/public/art/README.mdL49), add RTL/hook tests, WarBow listbox keyboard nav (mirrorArenaSimplePagetoken dropdown), buy CTAaria-label, ESLint fixes in touched arena files.WalletProfileModalfocus-trap / Escape-return-focus tests when modal shell is in scope.agent:implementand re-run verify after MR lands.Issue left open — acceptance criteria not met.
Implementation verify — issue #321 (PASS — ready to close)
Verified on
mainat551cdb06(merged MR !477). All acceptance criteria are satisfied; no additional code changes required in this session.Acceptance criteria
TimerHeroLiveBuys.tsx,ArenaBuyModals.tsx, ande2e/arena-live-buys-modals.spec.tsabsent.playwright.config.tshas notestIgnorefor deleted spec.frontend/public/art/README.mdupdated.ArenaWarbowHeroPanel.test.tsx(3),ArenaCharmCredCard.test.tsx(5),ArenaSimplePage.test.tsx(5),useArenaSaleSession.test.ts(3),warbowTargetListKeyboard.test.ts(4),arenaSaleSessionBuyPreflight.test.ts,WalletProfileModal.test.tsx(4).ArenaWarbowHeroPanel.tsx:role="listbox"/role="option", rovingtabIndex,onKeyDown+moveWarbowTargetListIndex(ArrowUp/Down/Home/End wrap). Buy CTA: contextualaria-labelonarena-simple-buy-charm(ArenaSimplePage.tsxL798–807).npm run lintzero warnings insrc/pages/arena/npx eslint src/pages/arena/— exit 0, zero warnings. Repo-widenpm run lint: 2 warnings outside arena (IndexerConnectivityContext,LatestBlockContext— pre-existing, out of #321 scope).npm run typecheckcd frontend && npm run typecheck— exit 0.npm testcd frontend && npm test— 125 files / 672 tests, all passed (up from baseline 116 / 632).rg TimerHeroLiveBuys/ArenaBuyModalsno importsrgunderfrontend/src— no matches.npm testoutput.Attack / abuse test plan
WalletProfileModal.tsxstoresreturnFocusRefand restores on close;WalletProfileModal.test.tsxassertsreturnFocusRef.current?.focus?.()wiring.WalletProfileModal.test.tsxescapes malicious address in explorerhref;AddressInlinetest rejects<script>injection.Optional test plan
bash scripts/e2e-anvil.shDocumentation
docs/testing/frontend-content-audit.mdcross-links #321 unit tests andWalletProfileModal.test.tsx.frontend/public/art/README.mdnotesTimerHeroLiveBuysconsumer removal.Third-party verification checklist
Closing — implementation landed via MR !477; all criteria pass.