Skip to content

Add integration test: time-locked-transactions early-execution rejection #38

Description

@christabel888

Context: Hardening pass before the analytics pivot leans on these contracts more heavily for indexing.

Where:

  • time-locked-transactions/src/test.rs -- time-locked-transactions has an existing time-locked-transactions/src/test.rs

What to do:

  • Add test coverage for that a ScheduledTransfer is rejected if executed before its unlock ledger, and succeeds after.
  • Follow the existing test conventions used elsewhere in the workspace (e.g. escrow/src/test.rs, governance/src/test.rs) for env/contract setup boilerplate.

Suggested approach:

  1. Read time-locked-transactions/src/lib.rs end to end first -- write down every state transition and every Result::Err path before writing a single test, so you're testing behavior you've actually verified exists, not behavior you assume exists.
  2. Cover the happy path first, then the specific edge case named in this issue, then at least one "should fail" case (wrong caller, wrong state, etc.).
  3. Use Soroban's test Env with Env::default() and mock auths (env.mock_all_auths() or targeted auth mocking) matching the pattern already used in sibling test files.
  4. Add your new test function(s) alongside the existing ones in time-locked-transactions/src/test.rs, matching its existing setup helpers rather than duplicating them.

Watch out for:

Definition of done:

  • New test(s) added covering the scenario above
  • cargo test -p time-locked-transactions passes
  • Test also runs under the workspace-wide cargo test

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions