Skip to content

test: add scheduled Stellar Testnet E2E integration suite - #1461

Merged
blurbeast merged 1 commit into
LabsCrypt:mainfrom
Subscription-block:feat/testnet-e2e-integration-suite
Sep 26, 2026
Merged

blurbeast merged 1 commit into
LabsCrypt:mainfrom
Subscription-block:feat/testnet-e2e-integration-suite

Conversation

@Wilfred007

Copy link
Copy Markdown
Contributor

Mocked RPC tests cannot catch live-network drift (protocol upgrades, ledger timing, RPC behaviour, fee surges, Friendbot outages) or indexer ingestion regressions. Add a live testnet suite and a scheduled workflow:

  • backend/e2e/testnet/network-health: RPC health, passphrase/protocol version, ledger close-time budget, RPC/Horizon skew, fee stats, Friendbot.
  • backend/e2e/testnet/stream-lifecycle: create_stream -> withdraw ->
    cancel_stream on a deployed contract with Friendbot-funded accounts and the native XLM SAC, then runs the real SorobanEventWorker against Postgres and asserts events are ingested with matching hashes/ledgers.
  • .github/workflows/testnet-e2e.yml: every 6h (and on dispatch) builds and deploys a fresh contract with an ephemeral deployer, runs the suite, and opens/updates a testnet-e2e-failure issue on scheduled failures.

The suite has its own vitest config and is excluded from npm test.

Description

Closes #1454
Closes #1448
Closes #1447
Closes #1446

Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📚 Documentation update
  • 🔧 Refactoring (no functional changes)
  • ⚡ Performance improvement
  • 🧪 Test addition or update

Related Issues

Closes #

Changes Made

Testing

Test Coverage

  • Unit tests added/updated
  • Integration tests added/updated
  • Manual testing performed

Test Steps

Breaking Changes

Breaking Changes:

Migration Guide:

Screenshots/Demo

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • Updated Postman/Hoppscotch API collections if routes changed
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published
  • I have checked for breaking changes and documented them if applicable

Additional Notes

Mocked RPC tests cannot catch live-network drift (protocol upgrades, ledger
timing, RPC behaviour, fee surges, Friendbot outages) or indexer ingestion
regressions. Add a live testnet suite and a scheduled workflow:

- backend/e2e/testnet/network-health: RPC health, passphrase/protocol
  version, ledger close-time budget, RPC/Horizon skew, fee stats, Friendbot.
- backend/e2e/testnet/stream-lifecycle: create_stream -> withdraw ->
  cancel_stream on a deployed contract with Friendbot-funded accounts and
  the native XLM SAC, then runs the real SorobanEventWorker against
  Postgres and asserts events are ingested with matching hashes/ledgers.
- .github/workflows/testnet-e2e.yml: every 6h (and on dispatch) builds and
  deploys a fresh contract with an ephemeral deployer, runs the suite, and
  opens/updates a testnet-e2e-failure issue on scheduled failures.

The suite has its own vitest config and is excluded from `npm test`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@blurbeast
blurbeast merged commit 6abef46 into LabsCrypt:main Sep 26, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment