Skip to content

feat: add L2↔L3 messaging E2E tests and self-managed compose lifecycle#49

Merged
chudkowsky merged 4 commits intomainfrom
feat/e2e-messaging-tests
Mar 18, 2026
Merged

feat: add L2↔L3 messaging E2E tests and self-managed compose lifecycle#49
chudkowsky merged 4 commits intomainfrom
feat/e2e-messaging-tests

Conversation

@chudkowsky
Copy link
Copy Markdown
Collaborator

  • Add compose.l2.yml, compose.l3.yml, compose.e2e.yml for the full local L2/L3/Saya stack; compose.yml wires cross-service dependencies
  • Add compiled Cairo contracts (sn_msg, appc_msg_sn) and Dockerfile.sozo
  • Add saya healthcheck to compose.e2e.yml so --wait works reliably
  • Fix nonce race in sn_msg_deploy: sleep 2 between declare and deploy, restart: on-failure as safety net
  • Add tests/e2e/tests/messaging.rs: test_l2_to_l3_message and test_l3_to_l2_message covering full round-trip message delivery
  • Add compose_up, compose_down, ComposeGuard, wait_for_l1_handler, wait_for_tx_block helpers to saya-e2e lib
  • Add L3/messaging constants to env.rs
  • Update settlement tests to manage compose lifecycle themselves (same pattern as messaging, no external infra setup needed)
  • Update e2e-tests.yml: both jobs now self-contained, add e2e-messaging job

chudkowsky and others added 4 commits March 18, 2026 19:03
- Add compose.l2.yml, compose.l3.yml, compose.e2e.yml for the full local
  L2/L3/Saya stack; compose.yml wires cross-service dependencies
- Add compiled Cairo contracts (sn_msg, appc_msg_sn) and Dockerfile.sozo
- Add saya healthcheck to compose.e2e.yml so --wait works reliably
- Fix nonce race in sn_msg_deploy: sleep 2 between declare and deploy,
  restart: on-failure as safety net
- Add tests/e2e/tests/messaging.rs: test_l2_to_l3_message and
  test_l3_to_l2_message covering full round-trip message delivery
- Add compose_up, compose_down, ComposeGuard, wait_for_l1_handler,
  wait_for_tx_block helpers to saya-e2e lib
- Add L3/messaging constants to env.rs
- Update settlement tests to manage compose lifecycle themselves
  (same pattern as messaging, no external infra setup needed)
- Update e2e-tests.yml: both jobs now self-contained, add e2e-messaging job

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
…verride error

Docker Compose's `include` directive does not allow parent files to override
services from included files. The previous structure tried to add `depends_on`
entries to `katana_init` and `saya` in the parent, causing:
  services.katana_init conflicts with imported resource

Flatten the three sub-files into a single compose.yml with all cross-service
dependencies wired directly. The sub-files (compose.l2.yml, compose.l3.yml,
compose.e2e.yml) are kept for standalone layer-by-layer use.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@chudkowsky chudkowsky marked this pull request as ready for review March 18, 2026 18:17
@chudkowsky chudkowsky merged commit 7bb7678 into main Mar 18, 2026
8 checks passed
@chudkowsky chudkowsky deleted the feat/e2e-messaging-tests branch March 24, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant