Skip to content

[SC-51] Cross-contract integration tests #1215

Description

@yusuftomilola

Overview

Tests today are per-crate and exercise contracts in isolation. Real flows span crates — a high-value asset transfer touches the registry, multisig approval rules, and the audit trail — and the seams between them are untested.

Tasks

  • Add an integration test target registering multiple contracts in a single test Env.
  • Cover: register asset → initiate high-value transfer → multisig approval threshold reached → ownership updated → audit entry written.
  • Cover the failure path: threshold not reached leaves ownership unchanged with no partial state.
  • Cover an unauthorized actor being rejected at the approval boundary.
  • Cover a maintenance record written against a registered asset.
  • Assert the event sequence across contracts, not just final state.
  • Document the setup so new integration cases are easy to add.

Acceptance Criteria

  • At least three multi-contract flows are covered end to end.
  • A mid-flow failure leaves no partial state in any contract.
  • Integration tests run under cargo test --all in CI.

Dependencies

Best after [SC-32], [SC-40], [SC-45].

Notes for Contributors

Requires Rust + Soroban. Workspace: contracts/ (soroban-sdk 22, members: assetsup, contrib, multisig-wallet, multisig_transfer, asset-maintenance). Run cargo test --all, cargo fmt --all -- --check, and cargo clippy --all-targets --all-features -- -D warnings before opening a PR — CI enforces all three. Comment below to be assigned.

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programcontracttestingTests, QA, and quality assurance

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions