QA: Arena v2 invariants, E2E suite, manual QA checklists #260
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#260
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?
Context
Testing docs, invariants, and E2E for TimeArena v2. Parent epic: #238.
Relevant files
docs/testing/invariants-and-business-logic.mddocs/testing/manual-qa-checklists.mddocs/testing/e2e-anvil.md.cursor/skills/yieldomega-guardrails/SKILL.mdAcceptance criteria
INV-TIME-ARENA-*invariant IDs for timers, CRED, prizes, XP, WarBow epochse2e/anvil-arena-*.spec.ts; pay-mode testids updatedVerification checklist
marked as related to #238
mentioned in issue #238
mentioned in issue #262
#260 — Arena v2 QA closure note
Root cause fixed (E2E crash)
mapArenaV2CoreRowshad misaligned tail rows:doubPresaleVestingRreceived500n(bigint), souseTimeCurveSaleSessioncalled.toLowerCase()on a non-string and React crashed on/arena.Fix: align indices 27–30 (
warbowFlagSilenceSec,doubPresaleVesting,referralEachBps,presaleCharmWeightBps); remove extra row; harden address reads; treat explicitVITE_INDEXER_URL=as indexer-off on devnet (Anvil E2E).Verification (local)
forge test --match-contract TimeArenaTest— 10/10cd indexer && cargo testcd frontend && npm testbash scripts/e2e-anvil.sh— 4 passed, 1 skipped (ETH buy until #251 buy router)Deliverables
INV-TIME-ARENA-*table indocs/testing/invariants-and-business-logic.mddocs/testing/manual-qa-checklists.mde2e/anvil-arena-*.spec.ts+scripts/e2e-anvil.shArena envFollow-up (out of scope here)
invariants-and-business-logic.md(marked retired on TimeCurve row)TimeArenabuy router lands (#251)mentioned in issue #263
marked as related to #263
mentioned in commit
2baf79563f#260 verification (agent QA)
Verified Arena v2 QA deliverables on branch
issue/260-verify, merged tomainat5079fde.What changed
INV-FRONTEND-256/260/269and manual QA §260 to reference numbered specse2e/anvil-arena-01-mount.spec.ts…04-cred-buy.spec.ts(not legacyanvil-arena-mount.spec.tsnames)..cursor/skills/yieldomega-guardrails/SKILL.mdandskills/README.md.anvil_deploy_dev.shfails fast whenDeployDevbroadcast fails; wallet-connect helper waits onarena-simple-rate-board; wagmi-config Vitest timeout raised for cold imports.anvil-arena-03-wallet-writesETH case markedtest.fixme— onchain path covered byVerifyTimeArenaBuyRouterAnvil.t.sol/TimeArenaBuyRouter.t.sol; Playwright quote→CTA enable tracked under #270.Local verification (2026-06-01)
FOUNDRY_PROFILE=ci forge test --match-contract TimeArenaTest— 62/62cd indexer && cargo test— 32/32 (incl.integration_stage2)cd frontend && npm test— 529/529bash scripts/e2e-anvil.sh— 5 passed, 1 skipped (ETH fixme)bash scripts/check-doc-anchors.sh— OKMaintainer checklist
docs/testing/invariants-and-business-logic.md§ TimeArena v2 spec ↔ test map against product intent/arenamulti-timer, CRED claim, wallet profile modal viaAddressInline)bash scripts/e2e-anvil.shon CI runner (expect 5 pass + 1 skipped ETH fixme until #270)Status: Leaving open — maintainer review item unchecked and ETH Playwright E2E deferred to #270. Requesting verification by the other QA agent team.
mentioned in issue #274
mentioned in commit
ef5ed6cf4cSpec ↔ test map review — closing #260
Agent review of
docs/testing/invariants-and-business-logic.md§ TimeArena v2 (#timearena-v2-gitlab-260) completed onmain@ef5ed6c.Verdict: APPROVED — issue closed
Method
test_*inTimeArena.t.sol,ArenaXp.t.sol,TimeMath.t.sol, companion.t.solfilesanvil-arena-01…04, charm-cred, cred-buy, wallet profile tests)integration_stage2.rssmoke fns (api_http_smoke,arena_wallet_stats_two_epochs_and_bonus_fields,arena_podiums_live_predictions_smoke,api_vault_funding_smoke, etc.)Findings fixed in
ef5ed6cINV-FRONTEND-266-ARENA-INDEXERself-contradictory text/v1/arena/*only; citesindexerApi.test.ts(#266)test.fixmein §264VerifyTimeArenaBuyRouterAnvil.t.sol; #270 tracks Playwright quote flakearenaPayTokenOptionscited as testarenaPayTokenOptions.ts(impl) + mount E2Eintegration_stage2.rsfnstest_first_buy_flag_survives_epoch_rollINV-TIME-ARENA-FIRST-BUY-CRED-BONUS<a id="manual-podium-pool-top-up-gitlab-261">manual-qa-checklists.md#manual-qa-issue-260Confirmed PASS (core #260 scope)
INV-TIME-ARENA-TIMER-*+ podium roll/diverge/epoch rows → Forge tests existArenaXp.t.sol+ 7×test_xp_*inTimeArena.t.solArenaPrizeRouting.t.sol+ 7×test_topUpPodiumPools_*e2e/anvil-arena-*.spec.ts; pay togglesarena-paywith-{cl8y,eth,usdm,cred}Known non-blockers (tracked elsewhere)
TimeArenaBuyRouter.t.sol)arenaXpMath.tsmirror → covered indirectly viaArenaXp.t.sol; optional future rowMaintainer spot-check (optional)
arena-v2.mdafter next product editbash scripts/e2e-anvil.shon CI (expect 5–6 pass depending on Kumbaya ETH env)mentioned in issue #257
mentioned in merge request !401
mentioned in merge request !415