Skip to content

test: add backend API integration tests against local Soroban sandbox#142

Merged
levoski1 merged 3 commits into
WHEELBACK:mainfrom
Iceeyyou2:test/backend-api-integration-tests
Jun 27, 2026
Merged

test: add backend API integration tests against local Soroban sandbox#142
levoski1 merged 3 commits into
WHEELBACK:mainfrom
Iceeyyou2:test/backend-api-integration-tests

Conversation

@Iceeyyou2

Copy link
Copy Markdown
Contributor

Summary

Adds a dedicated api-integration-tests Rust crate that exercises all REST/RPC
endpoints against the local Soroban sandbox started via docker-compose up -d.
Tests cover happy-path and error-path scenarios using reqwest (blocking) and
assert correct HTTP status codes and response shapes.

Changes

  • contracts/Cargo.toml — new workspace manifest unifying invoice and the new

    api-integration-tests member under one cargo test invocation

  • contracts/api-integration-tests/Cargo.toml — crate with reqwest + serde_json

    dev-dependencies; single [[test]] entry pointing at tests/api.rs

  • contracts/api-integration-tests/tests/api.rs — integration tests covering:

    • /health/rpc — 200 OK, status: "ok" body
    • /invoices — getLatestLedger (200, sequence present), simulateTransaction with missing params (RPC error)
    • /disputes — Horizon /accounts (200, _embedded.records array), unknown account (404)
    • /compliance — getLedgerEntries with empty keys (200), invalid XDR key (RPC error)
    • Error paths: malformed JSON body (400/parse error), unknown RPC method (-32601)
    • Sandbox reachability guard test
  • .github/workflows/backend-tests.yml — split into two jobs:

    • unit — runs existing cargo test -p comebackhere-invoice (unchanged behaviour)

    • integration — spins up the Soroban sandbox via docker compose up -d, waits

      for /health to return OK, then runs cargo test -p api-integration-tests -- --test-threads=1

Prerequisites

docker-compose up -d # start Soroban sandbox + Redis
cargo test -p api-integration-tests -- --test-threads=1

Closes #104

- Add contracts/api-integration-tests Rust crate with reqwest-based tests
- Cover /health/rpc, /invoices (getLatestLedger, simulateTransaction),
  /disputes (Horizon accounts), /compliance (getLedgerEntries)
- Test happy paths (200 OK) and error paths (400, 404, RPC errors)
- Split backend-tests.yml into unit + integration jobs; integration job
  starts the Soroban sandbox via docker compose before running tests

Closes WHEELBACK#104
@drips-wave

drips-wave Bot commented Jun 26, 2026

Copy link
Copy Markdown

@Iceeyyou2 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@levoski1 levoski1 merged commit 1dc714b into WHEELBACK:main Jun 27, 2026
0 of 7 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.

test: add backend API integration tests

2 participants