Skip to content

feat: add E2E test for complete blockchain notification workflow - #876

Open
pimaster900 wants to merge 1 commit into
Core-Foundry:mainfrom
pimaster900:feat/blockchain-workflow-e2e-tests
Open

pimaster900 wants to merge 1 commit into
Core-Foundry:mainfrom
pimaster900:feat/blockchain-workflow-e2e-tests

Conversation

@pimaster900

Copy link
Copy Markdown

Covers the full pipeline:
Blockchain Event → Listener → Validation → Database → Scheduler → Notification

50 tests across 7 describe groups:

  • Stage 1: RPC response & event payload validation
  • Stage 2: EventRegistry (in-memory store)
  • Stage 3: In-memory and DB-backed deduplication
  • Stage 4: NotificationAPI → SQLite persistence
  • Stage 5: Scheduler dispatch, retry, and failure exhaustion
  • Stage 6: DiscordNotificationService delivery
  • Full pipeline: happy path + failure at each stage

Supporting changes:

  • Extend @stellar/stellar-sdk mock with scvString/scvVoid ScVal types
  • Add generateCorrelationId export to request-id util
  • Add sanitizeForDiscord export to discord-notification service

Acceptance criteria:

  • Complete workflow executes successfully in a test environment ✓
  • Failure at each major stage is handled predictably ✓

Overview

Related Issue

Closes #

Changes

Verification

# e.g.
cd dashboard && npm test
cd listener && npm run typecheck && npm test
cd contract/contracts/hello-world && cargo test

How to Test

Checklist

  • Branch is up to date with main
  • Tests added/updated and all pass locally
  • cargo fmt --all run (if Rust changes)
  • npm run lint passes (if TypeScript changes)
  • Documentation updated if behavior changed

closes #796

Covers the full pipeline:
  Blockchain Event → Listener → Validation → Database → Scheduler → Notification

50 tests across 7 describe groups:
- Stage 1: RPC response & event payload validation
- Stage 2: EventRegistry (in-memory store)
- Stage 3: In-memory and DB-backed deduplication
- Stage 4: NotificationAPI → SQLite persistence
- Stage 5: Scheduler dispatch, retry, and failure exhaustion
- Stage 6: DiscordNotificationService delivery
- Full pipeline: happy path + failure at each stage

Supporting changes:
- Extend @stellar/stellar-sdk mock with scvString/scvVoid ScVal types
- Add generateCorrelationId export to request-id util
- Add sanitizeForDiscord export to discord-notification service

Acceptance criteria:
- Complete workflow executes successfully in a test environment ✓
- Failure at each major stage is handled predictably ✓
@drips-wave

drips-wave Bot commented Sep 28, 2026

Copy link
Copy Markdown

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

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 End-to-End Notification Pipeline Tests

1 participant