From 97d2953af72eda1c88f9dc49fa9056fe9f09f6ff Mon Sep 17 00:00:00 2001 From: LikeACloud7 Date: Mon, 1 Jun 2026 10:31:05 +0900 Subject: [PATCH] Include status on payment intents --- apps/api/src/services/paymentService.js | 3 ++- apps/api/src/tests/paymentService.test.js | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 apps/api/src/tests/paymentService.test.js diff --git a/apps/api/src/services/paymentService.js b/apps/api/src/services/paymentService.js index 956a70dc78..8850e7e1cf 100644 --- a/apps/api/src/services/paymentService.js +++ b/apps/api/src/services/paymentService.js @@ -4,6 +4,7 @@ export async function createPaymentIntent(payload) { paymentId: `pay_${Date.now()}`, amount: payload.amount, currency: payload.currency ?? "usd", - provider: "stripe" + provider: "stripe", + status: "pending" }; } diff --git a/apps/api/src/tests/paymentService.test.js b/apps/api/src/tests/paymentService.test.js new file mode 100644 index 0000000000..ff6ebebf8e --- /dev/null +++ b/apps/api/src/tests/paymentService.test.js @@ -0,0 +1,20 @@ +import test from "node:test"; +import assert from "node:assert/strict"; +import { createPaymentIntent } from "../services/paymentService.js"; + +test("createPaymentIntent includes an initial pending status", async () => { + const result = await createPaymentIntent({ amount: 2500 }); + + assert.equal(result.amount, 2500); + assert.equal(result.currency, "usd"); + assert.equal(result.provider, "stripe"); + assert.equal(result.status, "pending"); + assert.match(result.paymentId, /^pay_/); +}); + +test("createPaymentIntent preserves an explicit currency with pending status", async () => { + const result = await createPaymentIntent({ amount: 1000, currency: "eur" }); + + assert.equal(result.currency, "eur"); + assert.equal(result.status, "pending"); +});