Updates method to reflect correct payment provider API

This commit is contained in:
Sebastian Rindom committed 2020-05-27 22:53:26 +02:00
1 parent 022367a9d8
commit de35931d7a
5 files changed
+73 -11

No files matched your search

+2 -1
View File
@@ -23,7 +23,8 @@
"client-sessions": "^0.8.0", "client-sessions": "^0.8.0",
"cross-env": "^5.2.1", "cross-env": "^5.2.1",
"eslint": "^6.8.0", "eslint": "^6.8.0",
"jest": "^25.5.2" "jest": "^25.5.2",
"medusa-test-utils": "^0.3.0"
}, },
"scripts": { "scripts": {
"build": "babel src -d dist", "build": "babel src -d dist",
@@ -120,14 +120,10 @@ describe("StripeProviderService", () => {
result = await stripeProviderService.updatePayment( result = await stripeProviderService.updatePayment(
{ {
payment_method: {
data: {
id: "pi_lebron", id: "pi_lebron",
}, },
},
},
{ {
amount: 1000, total: 1000,
} }
) )
}) })
@@ -122,14 +122,17 @@ class StripeProviderService extends PaymentService {
/** /**
* Updates Stripe PaymentIntent. * Updates Stripe PaymentIntent.
* @param {string} cart - the cart to update payment intent for * @param {object} data - The payment session data.
* @param {Object} data - the update object for the payment intent * @param {Object} cart - the current cart value
* @returns {Object} Stripe PaymentIntent * @returns {Object} Stripe PaymentIntent
*/ */
async updatePayment(cart, update) { async updatePayment(data, cart) {
try { try {
const { data } = cart.payment_method const { id } = data
return this.stripe_.paymentIntents.update(data.id, update) const amount = this.totalsService_.getTotal(cart)
return this.stripe_.paymentIntents.update(id, {
amount
})
} catch (error) { } catch (error) {
throw error throw error
} }
@@ -1,6 +1,12 @@
import { IdMap } from "medusa-test-utils" import { IdMap } from "medusa-test-utils"
export const TotalsServiceMock = { export const TotalsServiceMock = {
getTotal: jest.fn().mockImplementation(cart => {
if (cart.total) {
return cart.total
}
return 0
}),
getSubtotal: jest.fn().mockImplementation(cart => { getSubtotal: jest.fn().mockImplementation(cart => {
if (cart.subtotal) { if (cart.subtotal) {
return cart.subtotal return cart.subtotal
@@ -23,4 +23,60 @@ describe("ProductService", () => {
} }
}) })
}) })
describe("createSession", () => {
const createSession = jest.fn().mockReturnValue(Promise.resolve())
const container = {
totalsService: TotalsService,
pp_default_provider: {
createSession
}
}
const providerService = new PaymentProviderService(container)
it("successfully creates session", () => {
await providerService.createSession("default_provider", {
total: 100
})
expect(createSession).toBeCalledTimes(1)
expect(createSession).toBeCalledWith({
total: 100
})
})
})
describe("updateSession", () => {
const createSession = jest.fn().mockReturnValue(Promise.resolve())
const updateSession = jest.fn().mockReturnValue(Promise.resolve())
const container = {
totalsService: TotalsService,
pp_default_provider: {
createSession,
updateSession
}
}
const providerService = new PaymentProviderService(container)
it("successfully creates session", () => {
await providerService.createSession({
provider_id: "default_provider",
data: {
id: "1234"
}
}, {
total: 100
})
expect(TotalsService.getTotal).toBeCalledTimes(1)
expect(TotalsService.getTotal).toBeCalledWith({
total: 100
})
expect
})
})
}) })