Skip to content

feat: add E2E integration tests for Oracle-Contract-API pipeline#123

Merged
Smartdevs17 merged 2 commits intoSmartdevs17:mainfrom
olathedev:feat/issue-75-e2e-integration-tests
Mar 24, 2026
Merged

feat: add E2E integration tests for Oracle-Contract-API pipeline#123
Smartdevs17 merged 2 commits intoSmartdevs17:mainfrom
olathedev:feat/issue-75-e2e-integration-tests

Conversation

@olathedev
Copy link
Copy Markdown
Contributor

Summary

Closes #75

  • Implements a full E2E test suite (tests/e2e/pipeline.e2e.test.ts) that verifies the Oracle → Contract → API pipeline end-to-end
  • Uses an in-memory PriceStore shared between oracle and API stubs — no real network calls or deployed contracts required
  • All 23 tests pass

Test coverage

  • Health check/api/health returns healthy status
  • Oracle pipeline — price fetch, 8-decimal fixed-point encoding, multi-asset updates, stale price overwrite, unique tx hashes per cycle
  • API price reads — 404 before oracle runs, correct price after update, case-insensitive asset lookup, bulk /api/prices endpoint
  • Full lending lifecycle — deposit/borrow prepare + submit flow after oracle update
  • Error handling — invalid operation, missing userAddress/amount/signedXdr, partial provider failure
  • Diagnostics — pipeline state visibility, timestamp freshness

Test plan

  • cd tests/e2e && npm install && npm test — all 23 tests pass
  • No external network calls required

…rtdevs17#75)

Implements a comprehensive E2E test suite that verifies the full pipeline:
- Oracle fetches prices from providers (mocked CoinGecko)
- Oracle sends price updates to Soroban contract (mocked updater)
- API reads updated prices and serves them via REST endpoints

Test coverage includes:
- Health check endpoint
- Oracle price update pipeline with 8-decimal fixed-point encoding
- API reads prices after oracle update (404 before, 200 after)
- Full lending lifecycle: deposit/borrow prepare + submit flow
- Error handling for invalid operations and missing fields
- Diagnostic pipeline state visibility

All 23 tests pass. Uses shared in-memory PriceStore to simulate
on-chain storage without real network calls.
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 24, 2026

@olathedev is attempting to deploy a commit to the smartdevs17's projects Team on Vercel.

A member of the Team first needs to authorize it.

@drips-wave
Copy link
Copy Markdown

drips-wave bot commented Mar 24, 2026

@olathedev 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

@Smartdevs17 Smartdevs17 merged commit e1bf6bc into Smartdevs17:main Mar 24, 2026
4 of 8 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.

Add E2E integration test for Oracle-Contract-API pipeline

2 participants