Updates method to reflect correct payment provider API

This commit is contained in:
Sebastian Rindom
2020-05-27 22:53:26 +02:00
parent 022367a9d8
commit de35931d7a
5 changed files with 75 additions and 13 deletions

View File

@@ -23,7 +23,8 @@
"client-sessions": "^0.8.0",
"cross-env": "^5.2.1",
"eslint": "^6.8.0",
"jest": "^25.5.2"
"jest": "^25.5.2",
"medusa-test-utils": "^0.3.0"
},
"scripts": {
"build": "babel src -d dist",
@@ -41,4 +42,4 @@
"body-parser": "^1.19.0"
},
"gitHead": "35e0930650d5f4aedf2610749cd131ae8b7e17cc"
}
}

View File

@@ -120,14 +120,10 @@ describe("StripeProviderService", () => {
result = await stripeProviderService.updatePayment(
{
payment_method: {
data: {
id: "pi_lebron",
},
},
id: "pi_lebron",
},
{
amount: 1000,
total: 1000,
}
)
})

View File

@@ -122,14 +122,17 @@ class StripeProviderService extends PaymentService {
/**
* Updates Stripe PaymentIntent.
* @param {string} cart - the cart to update payment intent for
* @param {Object} data - the update object for the payment intent
* @param {object} data - The payment session data.
* @param {Object} cart - the current cart value
* @returns {Object} Stripe PaymentIntent
*/
async updatePayment(cart, update) {
async updatePayment(data, cart) {
try {
const { data } = cart.payment_method
return this.stripe_.paymentIntents.update(data.id, update)
const { id } = data
const amount = this.totalsService_.getTotal(cart)
return this.stripe_.paymentIntents.update(id, {
amount
})
} catch (error) {
throw error
}

View File

@@ -1,6 +1,12 @@
import { IdMap } from "medusa-test-utils"
export const TotalsServiceMock = {
getTotal: jest.fn().mockImplementation(cart => {
if (cart.total) {
return cart.total
}
return 0
}),
getSubtotal: jest.fn().mockImplementation(cart => {
if (cart.subtotal) {
return cart.subtotal

View File

@@ -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
})
})
})