-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Labels
Nest.jsStellar WaveIssues in the Stellar wave programIssues in the Stellar wave programbackendNew feature or requestNew feature or request
Description
📌 Overview
Gasless transaction flows involve multiple services, chains, and smart contract interactions. Without end-to-end (E2E) testing, regressions or failures in any component can go undetected, causing unreliable behavior for users.
This task introduces End-to-End Integration Tests to simulate the complete transaction pipeline and validate the reliability of gasless flows.
🎯 Objective
Build a system that:
- Simulates full gasless transaction workflows from initiation to completion
- Validates interactions across backend API, RPC providers, queue workers, and contracts
- Detects potential failures, regressions, and edge cases
- Ensures confidence before merging or deploying changes
🛠 Scope of Work
1️⃣ Test Workflow Design
-
Identify critical gasless transaction flows:
- Transaction creation via API
- Queuing in BullMQ
- Worker execution and RPC interaction
- Signature verification and relayer submission
- Transaction completion and monitoring
-
Include failure scenarios:
- RPC timeout or failure
- Worker retry logic
- Insufficient gas or revert errors
- Signature expiration
2️⃣ Test Environment Setup
-
Isolated test environment:
- Local blockchain or testnets (e.g., Hardhat, Ganache, Goerli)
- Dockerized services for backend and workers
- Mock RPC providers if needed
-
Database reset between test runs to ensure consistency
3️⃣ Test Implementation
-
Write automated E2E tests using preferred framework:
- Jest with Supertest (API endpoints)
- Hardhat / Ethers.js for contract interactions
- Optional Playwright or Cypress for dashboard flows
-
Example test case:
test("Gasless transaction completes successfully", async () => {
const tx = await api.createTransaction({ merchantId, to, value });
await worker.processQueue();
const receipt = await blockchain.getTransactionReceipt(tx.hash);
expect(receipt.status).toBe(1);
});Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Nest.jsStellar WaveIssues in the Stellar wave programIssues in the Stellar wave programbackendNew feature or requestNew feature or request