Verify #350: fix transition E2E suite setup cooldown #527

Merged
PlasticDigits merged 1 commit from issue-350-verify-transition-e2e-suite into main 2026-06-26 14:30:31 +00:00
PlasticDigits commented 2026-06-26 11:11:58 +00:00 (Migrated from gitlab.com)

Summary

Fix ensureArenaLevelTwoViaCast so anvil-arena-06-transitions.spec.ts passes inside the full indexer-first E2E suite (YIELDOMEGA_E2E_INDEXER=1 bash scripts/e2e-anvil.sh). Prior arena specs leave the mock wallet on burst cooldown or already at level 2; the helper now warps before setup buys and skips when level ≥ 2.

Verification checklist (#350)

Acceptance item Command Result
Transition E2E spec (isolated) YIELDOMEGA_E2E_INDEXER=1 PLAYWRIGHT_SPECS="e2e/anvil-arena-06-transitions.spec.ts" bash scripts/e2e-anvil.sh PASS — 1 passed (17s)
Transition E2E in full suite YIELDOMEGA_E2E_INDEXER=1 bash scripts/e2e-anvil.sh PASS — anvil-arena-06-transitions.spec.ts green; 16/17 specs pass (pre-existing anvil-arena-04-cred-buy cooldown flake unrelated to #350)
Stack smoke bash scripts/verify-podium-live-anvil.sh PASS — verify-podium-live-anvil: OK (read_block=24, live_rows=12)
Epoch roll / settling UX e2e/anvil-arena-06-transitions.spec.ts asserts arena-timer-expired-pending-roll / arena-timer-settling, epoch 0→1, arena-podium-roll-cta PASS
Leaderboard refresh Spec polls indexer winners[0] zeroed after roll + UI arena-last-buy-podium-leaderboard PASS
Claim-ready state Spec asserts arena-charm-cred-claim enabled after Last Buy epoch end PASS
Docs / invariant INV-FRONTEND-342-TRANSITION-E2E in docs/testing/invariants-and-business-logic.md; run commands in docs/testing/e2e-anvil.md §350 PASS
5 workers documented cd frontend && CI=1 npm run test:e2e -- --workers=5 e2e/anvil-arena-06-transitions.spec.ts in issue test plan + docs (Anvil config uses 1 worker by design — shared chain) PASS
No mainnet keys Mock wallet + Anvil only PASS
No stale epoch after ingest waitIndexerPodiumUxEpoch + epoch corner assertions PASS

Follow-ups

  • anvil-arena-04-cred-buy.spec.ts still flakes on production-like 300s buy-energy cooldown when run after other specs; consider YIELDOMEGA_DEPLOY_NO_COOLDOWN=1 in e2e-anvil.sh or longer warp in that spec.
## Summary Fix `ensureArenaLevelTwoViaCast` so `anvil-arena-06-transitions.spec.ts` passes inside the full indexer-first E2E suite (`YIELDOMEGA_E2E_INDEXER=1 bash scripts/e2e-anvil.sh`). Prior arena specs leave the mock wallet on burst cooldown or already at level 2; the helper now warps before setup buys and skips when level ≥ 2. ## Verification checklist (#350) | Acceptance item | Command | Result | |-----------------|---------|--------| | Transition E2E spec (isolated) | `YIELDOMEGA_E2E_INDEXER=1 PLAYWRIGHT_SPECS="e2e/anvil-arena-06-transitions.spec.ts" bash scripts/e2e-anvil.sh` | **PASS** — 1 passed (17s) | | Transition E2E in full suite | `YIELDOMEGA_E2E_INDEXER=1 bash scripts/e2e-anvil.sh` | **PASS** — `anvil-arena-06-transitions.spec.ts` green; 16/17 specs pass (pre-existing `anvil-arena-04-cred-buy` cooldown flake unrelated to #350) | | Stack smoke | `bash scripts/verify-podium-live-anvil.sh` | **PASS** — `verify-podium-live-anvil: OK (read_block=24, live_rows=12)` | | Epoch roll / settling UX | `e2e/anvil-arena-06-transitions.spec.ts` asserts `arena-timer-expired-pending-roll` / `arena-timer-settling`, epoch 0→1, `arena-podium-roll-cta` | **PASS** | | Leaderboard refresh | Spec polls indexer `winners[0]` zeroed after roll + UI `arena-last-buy-podium-leaderboard` | **PASS** | | Claim-ready state | Spec asserts `arena-charm-cred-claim` enabled after Last Buy epoch end | **PASS** | | Docs / invariant | `INV-FRONTEND-342-TRANSITION-E2E` in `docs/testing/invariants-and-business-logic.md`; run commands in `docs/testing/e2e-anvil.md` §350 | **PASS** | | 5 workers documented | `cd frontend && CI=1 npm run test:e2e -- --workers=5 e2e/anvil-arena-06-transitions.spec.ts` in issue test plan + docs (Anvil config uses 1 worker by design — shared chain) | **PASS** | | No mainnet keys | Mock wallet + Anvil only | **PASS** | | No stale epoch after ingest | `waitIndexerPodiumUxEpoch` + epoch corner assertions | **PASS** | ## Follow-ups - `anvil-arena-04-cred-buy.spec.ts` still flakes on production-like 300s buy-energy cooldown when run after other specs; consider `YIELDOMEGA_DEPLOY_NO_COOLDOWN=1` in `e2e-anvil.sh` or longer warp in that spec.
PlasticDigits commented 2026-06-26 11:12:17 +00:00 (Migrated from gitlab.com)

mentioned in issue #350

mentioned in issue #350
PlasticDigits commented 2026-06-26 11:13:28 +00:00 (Migrated from gitlab.com)

Security review — MR !527

Commit reviewed: 8cc98c50ce9c3a241f267a701e61d66f619323ea
Scope: frontend/e2e/arenaE2eHelpers.ts — ensureArenaLevelTwoViaCast (level ≥ 2 early return + pre-buy warpAnvilPastBuyCooldown).

Outcome: FINDINGS: 0 medium+

Summary

Reviewed the full MR diff and traced the changed helper through existing E2E infrastructure (anvilCastCall, buyCharmViaCast, warpAnvilPastBuyCooldown, ANVIL_MOCK_WALLET). No prior security-review threads on this MR.

This change is test-only (Playwright Anvil E2E helpers). It does not ship to production, does not modify smart contracts, indexer services, or frontend runtime code, and does not introduce new attacker-controlled sinks.

Area checked Result
Injection (shell/SQL) No new execSync/fetch surfaces; inputs remain env-derived contract addresses and a hardcoded mock wallet constant.
Authn/authz bypass N/A — local Anvil test harness only.
SSRF / request forgery No change to RPC/indexer URL handling beyond calling existing warpAnvilPastBuyCooldown earlier in the same helper.
Secret leakage None introduced.
EVM / DeFi contract risk No on-chain code changes.

Security review: no medium+ findings on this diff.

No inline threads (nothing to flag).

## Security review — MR !527 **Commit reviewed:** `8cc98c50ce9c3a241f267a701e61d66f619323ea` **Scope:** `frontend/e2e/arenaE2eHelpers.ts` — `ensureArenaLevelTwoViaCast` (level ≥ 2 early return + pre-buy `warpAnvilPastBuyCooldown`). **Outcome:** `FINDINGS: 0` medium+ ### Summary Reviewed the full MR diff and traced the changed helper through existing E2E infrastructure (`anvilCastCall`, `buyCharmViaCast`, `warpAnvilPastBuyCooldown`, `ANVIL_MOCK_WALLET`). No prior security-review threads on this MR. This change is **test-only** (Playwright Anvil E2E helpers). It does not ship to production, does not modify smart contracts, indexer services, or frontend runtime code, and does not introduce new attacker-controlled sinks. | Area checked | Result | |--------------|--------| | Injection (shell/SQL) | No new `execSync`/`fetch` surfaces; inputs remain env-derived contract addresses and a hardcoded mock wallet constant. | | Authn/authz bypass | N/A — local Anvil test harness only. | | SSRF / request forgery | No change to RPC/indexer URL handling beyond calling existing `warpAnvilPastBuyCooldown` earlier in the same helper. | | Secret leakage | None introduced. | | EVM / DeFi contract risk | No on-chain code changes. | **Security review: no medium+ findings on this diff.** No inline threads (nothing to flag).
PlasticDigits (Migrated from gitlab.com) merged commit c91c2cfa59 into main 2026-06-26 14:30:31 +00:00
PlasticDigits commented 2026-06-26 14:30:32 +00:00 (Migrated from gitlab.com)

mentioned in commit c91c2cfa59

mentioned in commit c91c2cfa59c2eec9931a54e33691ffc5356dddfa
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega!527
No description provided.