payout retry lambda
This commit is contained in:
80
lambdas/payoutRetryProcessor/test-local.js
Normal file
80
lambdas/payoutRetryProcessor/test-local.js
Normal file
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
* Local test script for the Payout Retry Processor Lambda.
|
||||
*
|
||||
* Usage:
|
||||
* cd lambdas/payoutRetryProcessor
|
||||
* npm run local
|
||||
*/
|
||||
|
||||
// Import the handler
|
||||
const { handler } = require("./index");
|
||||
|
||||
async function runTest() {
|
||||
console.log("===========================================");
|
||||
console.log(" Payout Retry Processor - Local Test");
|
||||
console.log("===========================================\n");
|
||||
|
||||
console.log("Environment:");
|
||||
console.log(` DATABASE_URL: ${process.env.DATABASE_URL ? "***configured***" : "NOT SET"}`);
|
||||
console.log(` STRIPE_SECRET_KEY: ${process.env.STRIPE_SECRET_KEY?.startsWith("sk_test") ? "test mode" : process.env.STRIPE_SECRET_KEY ? "LIVE MODE!" : "NOT SET"}`);
|
||||
console.log(` EMAIL_ENABLED: ${process.env.EMAIL_ENABLED}`);
|
||||
console.log("");
|
||||
|
||||
// Warn if using live Stripe key
|
||||
if (process.env.STRIPE_SECRET_KEY && !process.env.STRIPE_SECRET_KEY.startsWith("sk_test")) {
|
||||
console.log("\n⚠️ WARNING: You are using a LIVE Stripe key!");
|
||||
console.log(" Real transfers will be created. Press Ctrl+C to abort.\n");
|
||||
await new Promise((resolve) => setTimeout(resolve, 3000));
|
||||
}
|
||||
|
||||
// Simulate EventBridge event (empty for scheduled trigger)
|
||||
const event = {
|
||||
source: "local-test",
|
||||
time: new Date().toISOString(),
|
||||
};
|
||||
|
||||
console.log("Invoking Lambda handler...\n");
|
||||
|
||||
try {
|
||||
const result = await handler(event);
|
||||
|
||||
console.log("\n===========================================");
|
||||
console.log(" Result");
|
||||
console.log("===========================================");
|
||||
console.log(`Status Code: ${result.statusCode}`);
|
||||
console.log("");
|
||||
|
||||
const body = JSON.parse(result.body);
|
||||
console.log(`Total Processed: ${body.totalProcessed || 0}`);
|
||||
console.log(`Successful: ${body.successfulCount || 0}`);
|
||||
console.log(`Failed: ${body.failedCount || 0}`);
|
||||
|
||||
if (body.successful && body.successful.length > 0) {
|
||||
console.log("\nSuccessful Payouts:");
|
||||
body.successful.forEach((p) => {
|
||||
console.log(` - Rental ${p.rentalId}: $${p.amount} (Transfer: ${p.transferId})`);
|
||||
});
|
||||
}
|
||||
|
||||
if (body.failed && body.failed.length > 0) {
|
||||
console.log("\nFailed Payouts:");
|
||||
body.failed.forEach((p) => {
|
||||
console.log(` - Rental ${p.rentalId}: ${p.error}`);
|
||||
});
|
||||
}
|
||||
|
||||
if (body.totalProcessed === 0) {
|
||||
console.log("\nNo failed payouts found to retry.");
|
||||
console.log("To create test data, run:");
|
||||
console.log(` UPDATE "Rentals" SET "payoutStatus" = 'failed' WHERE id = '<rental-id>';`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("\nLambda execution failed:");
|
||||
console.error(error);
|
||||
}
|
||||
|
||||
console.log("\n===========================================\n");
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
runTest();
|
||||
Reference in New Issue
Block a user