Skip to content

test: add TEST-02 update escrow real-limits report#89

Merged
armandocodecr merged 1 commit into
Trustless-Work:multi-release-developfrom
aguilar1x:test/test-02-update-escrow-limits-report
Jun 17, 2026
Merged

test: add TEST-02 update escrow real-limits report#89
armandocodecr merged 1 commit into
Trustless-Work:multi-release-developfrom
aguilar1x:test/test-02-update-escrow-limits-report

Conversation

@aguilar1x

@aguilar1x aguilar1x commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

1. Issue Link


2. Brief Description of the Issue

[TEST-02] is an edge-case test of the Multi-Release V2 update endpoint: verify the real limits of when properties can/can't change (funds held, active dispute, admin/platform immutability, balance = 0), the exact errors returned, and whether the equality check behaves as expected.

This is a black-box test against the deployed Testnet API — no contract code changes. The deliverable is the results report.


3. Changes Made

  • Added report/TEST-02-report.md with the full results for scenarios A–F, plus an isolation sub-test (F2).
  • Each scenario follows the report format requested in the issue: steps, expected vs actual, error code + message, final GET /:contractId state, and the relevant on-chain transaction hashes.

4. Evidence After Solution

Evidence is on-chain and verifiable: every action in the report includes its real Testnet transaction hash. Any hash can be checked at:

https://stellar.expert/explorer/testnet/tx/<hash>

Example (Scenario A deploy): https://stellar.expert/explorer/testnet/tx/8aa90b37063f31be0e7f802972b753b110089245a87335b285ccf73977c066f0


5. Important Notes

  • A, C, D, E pass: the documented limits behave as expected (mismatch while funded, dispute precedence, admin/platform immutable at balance 0, role change at balance 0 excludes the old role).
  • B — finding: role-list equality is order-sensitive. Reordering approvers ([A,B] → [B,A], same set) returns ESCROW_PROPERTIES_MISMATCH. Worth confirming whether ordering is intentional.
  • F — the scenario as written is not reachable: releasing the only milestone completes the escrow, so manage-milestones then returns ESCROW_ALREADY_RELEASED. Sub-test F2 confirms multi-release itself is correct (releasing one milestone with another pending does not close the escrow), so this is an expected limitation, not a bug.
  • E.3 is not reproducible via the API: /fund only accepts {contractId, signer, amount} and rebuilds the expected escrow from current on-chain state, so stale data can't be submitted.

@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c7871120-d5cd-49ec-a1de-40e7a741da2a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@armandocodecr armandocodecr merged commit 51a15bd into Trustless-Work:multi-release-develop Jun 17, 2026
4 checks passed
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.

2 participants