E2E/CI: remove conditional test.skip; complete on-chain Playwright gates #201
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#201
Loading…
Add table
Add a link
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?
Problem statement
Multiple Playwright specs use
test.skip()when LCD is down, pairs are paused, wallets lack funds, or routes are missing. This lets CI pass while not executing critical on-chain paths. Policy #103: the default pipeline must fail fast or seed state — not silently skip.Evidence / context
Affected specs (non-exhaustive):
hybrid-swap.spec.tswrap-swap.spec.tsswap-tx.spec.tspool-tx.spec.tswrap-pool.spec.tslimit-orders-tx.spec.tsfee-tier-tx.spec.tshelpers/chain.ts— LCD unreachable skipRelated child issues: #193 (hybrid), #195 (limits) — this issue is the umbrella for CI wiring + all specs.
Proposed solution
e2e-smoke(UI-only) vse2e-tx(required chain) projects.helpers/chain.ts: if LCD required, fail the job when down (not skip entire file).Acceptance criteria
test.skipfor funds/pair/pause/route.make/scripts/qa).PLAYWRIGHT_SKIP_CHAIN=1only for local UI dev (not default CI).Priority
P1 (launch confidence)
mentioned in commit
ee69fc9e4eSummary (@brouie — please verify)
Implemented GitLab #201 (umbrella for strict on-chain Playwright; policy #103) in
ee69fc9onmain.What changed
*-tx,hybrid-swap,wrap-*): removed inlinetest.skipfor LCD/funds/pair/pause/route; strict path usesassert*helpers and fails the job.e2e-tx(on-chain, strict) ande2e-smoke(UI-only).PLAYWRIGHT_SKIP_CHAIN=1(legacyREQUIRE_LOCALTERRA=0) — documented; not used in CI.make wait-healthyafter LocalTerra start; deploy + fullnpm run test:e2e(both projects, tx strict).e2e-provision-dev-wallet.shmints CL8Y ≥ tier-1 min forfee-tier-tx.skills/AGENTS_E2E_STRICT_CHAIN.md, updatedfrontend-dapp/e2e/README.md,docs/testing.md, cross-links in hybrid/limit skills.Verification checklist
make test-e2e-txpasses locally (LocalTerra + deploy +e2e-txproject)maincd frontend-dapp && npm run test:e2e:tx— no skipped tx tests when chain is upPLAYWRIGHT_SKIP_CHAIN=1 npm run test:e2e:smoke— UI smoke still runnable without chainfee-tier-txshows Register and completes (CL8Y balance after global setup)swap-tx/wrap-swaptx cases fail (not skip) if dev wallet unfunded or route missinghybrid-swapon-chain case still assertslimit_order_fill+book_return_amountLeaving issue open until verified on CI and localnet.
/cc @brouie
mentioned in commit 738cc8e0a8c538c4afc1085aec63cf9cdfc50cd9
Verification run (@brouie checklist — 2026-05-26)
Verified implementation on
main(ee69fc9) plus CI fix pushed tofix/glab-201-e2e-wait-localterra(738cc8e).Checklist results
make test-e2e-txpasses locallymain7dbdb6d): E2E job failed at Wait for LocalTerra — root cause: step ranmake wait-healthy(waits for Postgres) but job only startslocalterranpm run test:e2e:tx— no skipped tx tests when chain up.env.local) — correct strict fail, not skip. Full tx run blocked without DockerPLAYWRIGHT_SKIP_CHAIN=1 npm run test:e2e:smokerunnable without chainVITE_NETWORKand no deploy). Suite is runnable; chain-dependent smoke still needs deploy or skipsfee-tier-txRegister completesswap-tx/wrap-swapfail (not skip) when unfunded / no routeassertSwapCtaNotBlocked/ wrap helpers withexpect(...).toBe(true)in strict mode; no inlinetest.skipin tx spec bodies. Without chain: globalSetup error before any skiphybrid-swapassertslimit_order_fill+book_return_amounthybrid-swap.spec.tsL149–155). Runtime blocked without DockerFix applied (
738cc8eonfix/glab-201-e2e-wait-localterra)make wait-localterra(RPC poll only; no Postgres).wait-healthynow depends onwait-localterrathen waits for Postgres (unchanged for full dev).make test-e2e-tx: usewait-localterraafterdocker compose up -d localterra(fixes wrong order wheretest-e2e-txpreviously depended onwait-healthybefore starting LocalTerra).Static review (already on
main)test.skipinfrontend-dapp/e2e/**/*.spec.tstx bodies; skips only in helpers whenPLAYWRIGHT_SKIP_CHAIN=1.e2e-smoke/e2e-txconfigured correctly.Still open
738cc8eand confirm E2E Tests job green on CI.make test-e2e-txon a Docker host.Leaving #201 open until CI + localnet verification complete.
mentioned in commit
ae288e8967mentioned in commit
b5817a56f6Verification (@brouie) — 2026-05-27
Merged to
main(ae288e8).Delivered (GitLab #201 / #103)
make wait-localterra(notwait-healthy) after starting LocalTerra only — fixes CI #152 failure mode.make test-e2e-tx: Starts LocalTerra →wait-localterra→ deploy → stricte2e-tx(no Postgres prerequisite).name: cl8y-dex-terraclassicso git worktrees share the same LocalTerra stack.scripts/e2e-seed-wrap-pairs.sh+ deploy Phase 4c (LUNC-C/USTC-C pairs); global setup runs provision + hybrid seed + wrap seed; provision skips wrap CW20 mint.swap-txhuman-decimal amounts + sharedclickSwapSubmit; pool/wrap-pool scoped to factory / LUNC-C cards;status.shreports host Postgres on :5432.Checklist
make test-e2e-txall green locallye2e-txpassed. 9 failures: wrap-swap native routes (E1–E3, E6), wrap-pool txs — pool UI is indexer-backed; LUNC-C/USTC-C pairs are on-chain but not yet listed by indexer locally.main.npm run test:e2e:txno skips when chain upPLAYWRIGHT_SKIP_CHAIN=1smokefee-tier-txRegisterswap-txfail not skip when unfundedhybrid-swapLCD assertsStill open
e2e-tx(indexer must index wrap pairs; CI may need postgres+indexer).wait-localterrafix.Leaving #201 open until CI green and remaining wrap specs pass on a fully provisioned stack.
Verified on
mainat3226630— merged locally and pushed to origin/main.Reopened: fix is merged to
mainbut this issue stays open until QA/verification is complete. (Previously closed in error during repo cleanup.)mentioned in issue #214
mentioned in issue #215
mentioned in issue #219
mentioned in commit
a07db41d68Verification (@brouie) — 2026-05-30
Verified and merged
a07db41onmain(worktreeverify/glab-201).What was fixed during verification
e2e-txworker count: 1 worker when--project=e2e-tx(shared LocalTerra account; prevents sequence mismatch).npm run test:e2eruns smoke (5 workers) then tx (1 worker) sequentially.e2e/helpers/pool-ui.ts— expand vs submit buttons on expanded pool cards (strict-mode fix).#158route viadata-testid="swap-route-summary"; 15% custom slippage for multihop wrap routes; serial tx describe.AGENTS_E2E_STRICT_CHAIN.md,e2e/README.md,playwright-workers.mdccross-linked.Checklist
make test-e2e-tx/npm run test:e2e:txall green locallytest.skipin tx spec bodies for funds/pair/pause/routePLAYWRIGHT_SKIP_CHAIN=1PLAYWRIGHT_SKIP_CHAIN=1 npm run test:e2e:smokerunnablefee-tier-txRegisterswap-tx/wrap-swapfail (not skip) when blockedassertSwapCtaNotBlocked+ strict globalSetuphybrid-swapLCD assertslimit_order_fill+book_return_amountmaina07db41— await green before closingLocal repro
Tip: Stop
scripts/bots/swarm.shworkers during strict tx runs on shared localnet — they race the dev wallet and can fill the hybrid book before limit-order specs.Leaving #201 open until CI E2E job is green on
a07db41. Please confirm and close if checklist passes./cc @brouie
Correction — no hosted CI (2026-05-30)
Previous note incorrectly listed GitHub Actions E2E as pending. This repo does not run GitHub Actions or GitLab CI — automation is local only via
make/scripts/(docs/testing.md § CI, #234)..github/workflows/is a reference spec only.Updated checklist (issue #201 / #103 acceptance)
make test-e2e/make test-e2e-tx) runs tx specs withouttest.skipfor funds/pair/pause/routea07db41, 30/30e2e-txlocallymake test-e2e-tx,e2e/README.md,AGENTS_E2E_STRICT_CHAIN.mdPLAYWRIGHT_SKIP_CHAIN=1optional for UI-only dev (not default)npm run test:e2e:smokeClosing #201 — all verification criteria satisfied on local automation; no hosted runner to wait on.
mentioned in issue #259
mentioned in issue #338
mentioned in issue #340
mentioned in issue #368
mentioned in issue #622
marked as related to #622
mentioned in issue #660
mentioned in issue #661