Testing: EVM, Terra Classic, and web portal coverage (no Telegram/Solana) #4
Labels
No labels
agent:implement
agent:ready
api
bot
bug
ci
enhancement
ready
security
terra-classic
testing
ux
web
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-ecosystem-legal#4
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?
Summary
Raise automated test coverage for EVM, Terra Classic, and the web portal only. Explicitly postpone Telegram and Solana test work.
This issue bundles unit, integration, Playwright e2e, CI wiring, and abuse-path tests that support:
Implement tests alongside or immediately after those features; do not merge “tests only green because paths are mocked incorrectly.”
Related gap analysis:
gaps/GAP_1786322222.md§ Testing.Current codebase
API
api/src/verify/evm.rs); Terra raw-byte roundtrip (api/src/verify/terra.rs) — not ADR-036; rate limit/update_terms(api/src/rate_limit.rs); message/timestamp (api/src/message.rs).api/tests/integration_test.rs)./update_terms; redirect N/A on API.Web
web/src/ui.test.ts,web/src/query.test.ts,web/src/base58.test.ts(Solana-oriented — low priority now).ui.ts.E2E (Playwright)
web/e2e/home.spec.ts,sign-pages.spec.ts(property required),evm-sign.spec.ts(mock wallet full path),telegram-config.spec.ts(out of scope / leave as-is).web/e2e/global-setup.tspublishes terms via unauthenticatedPOST /update_terms(must track security issue auth change).web/playwright.config.ts— Chromium; workers already set for CI.SDK
CI
.gitlab-ci.yml:test:rust,test:web,test:e2e,test:clickwrap. No Terra e2e today.Why this is needed
EVM is the only production-credible path under test. Terra Classic cannot be trusted without ADR-036 vectors and a portal e2e. Portal UX and security changes will regress without assertions. Gap analysis called out EVM-centric coverage as a primary risk for the in-scope networks.
Constraints / guardrails
/,/sign/evm,/sign/terra-classic), sharedui/query/apihelpers, API wallet verify/submit/status,/update_termsauth, admin token boot behavior, redirect_uri, rate-limit IP trust.#[ignore]only while #1 unfinished — prefer implementing with #1).ADMIN_TOKEN/ bot tokens./update_termswhen auth lands.Relevant files
api/tests/integration_test.rs,api/src/verify/{evm,terra}.rs,api/src/rate_limit.rs,api/src/routes/{update_terms,admin,signatures}.rsweb/src/*.test.ts, new page/helper testsweb/e2e/*,web/e2e/helpers/evm-wallet.ts, newterra-wallet.tsmock.gitlab-ci.ymlweb/playwright.config.tsRecommended direction
/update_terms401/200;client_ipunit tests for trusted vs untrusted proxy.renderSuccessredirect allowlist cases.window.keplr.signArbitraryreturning fixture sig only if API accepts that fixture — otherwise API-level integration is the gate).test:rust/test:web/test:e2e; document any new env vars (ADMIN_TOKEN, allowlists).telegram-config.spec.tsexcept to keep CI green if env changes.Acceptance criteria
/update_termsauth and XFF/trust behavior once #3 lands (or behind feature flags in the same MR train)./update_termsafter #3.Test plan (functional paths)
propertyTest plan (attack / abuse / hack vectors)
/update_termsredirect_uriVerification criteria
cd api && cargo testgreen with new cases.npm run test:webandnpm run test:sdkgreen.cd web && npm run test:e2egreen in CI with Postgres + authenticated sync.marked as related to #1
marked as related to #2
marked as related to #3
mentioned in merge request !23
mentioned in commit
69e117eb88mentioned in merge request !24
mentioned in commit
87227379a4mentioned in merge request !32
mentioned in issue #16
marked as related to #17
mentioned in merge request !33