Skip to content

Commit 917ddbe

Browse files
authored
fix(core-flows): correctly clear a region payment providers (#15986)
1 parent 83ec164 commit 917ddbe

4 files changed

Lines changed: 49 additions & 3 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@medusajs/core-flows": patch
3+
---
4+
5+
fix(core-flows): correctly clear a region payment providers

integration-tests/modules/__tests__/regions/admin/regions.spec.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,46 @@ medusaIntegrationTestRunner({
238238
]),
239239
})
240240
)
241+
242+
/**
243+
* Omitting payment_providers should leave the existing links untouched
244+
*/
245+
246+
await api.post(
247+
`/admin/regions/${created.data.region.id}`,
248+
{
249+
name: "Test Region updated",
250+
},
251+
adminHeaders
252+
)
253+
254+
regionResponse = await api.get(
255+
`/admin/regions/${created.data.region.id}?fields=*payment_providers`,
256+
adminHeaders
257+
)
258+
259+
expect(regionResponse.status).toEqual(200)
260+
expect(regionResponse.data.region.payment_providers).toHaveLength(2)
261+
262+
/**
263+
* Passing an empty payment_providers list should clear all links
264+
*/
265+
266+
await api.post(
267+
`/admin/regions/${created.data.region.id}`,
268+
{
269+
payment_providers: [],
270+
},
271+
adminHeaders
272+
)
273+
274+
regionResponse = await api.get(
275+
`/admin/regions/${created.data.region.id}?fields=*payment_providers`,
276+
adminHeaders
277+
)
278+
279+
expect(regionResponse.status).toEqual(200)
280+
expect(regionResponse.data.region.payment_providers).toEqual([])
241281
})
242282

243283
it("should throw on update if the given payment providers does not exists", async () => {

packages/core/core-flows/src/region/steps/set-regions-payment-providers.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
MedusaError,
1010
Modules,
1111
arrayDifference,
12+
isDefined,
1213
promiseAll,
1314
} from "@medusajs/framework/utils"
1415
import { StepResponse, createStep } from "@medusajs/framework/workflows-sdk"
@@ -104,7 +105,7 @@ export const setRegionsPaymentProvidersStepId =
104105
"add-region-payment-providers-step"
105106
/**
106107
* This step sets the payment providers available in regions.
107-
*
108+
*
108109
* @example
109110
* const data = setRegionsPaymentProvidersStep({
110111
* input: [
@@ -119,7 +120,7 @@ export const setRegionsPaymentProvidersStep = createStep(
119120
setRegionsPaymentProvidersStepId,
120121
async (data: SetRegionsPaymentProvidersStepInput, { container }) => {
121122
const dataInputToProcess = data.input.filter((inputData) => {
122-
return inputData.payment_providers?.length
123+
return isDefined(inputData.payment_providers)
123124
}) as FilteredSetRegionsPaymentProvidersStepInput[]
124125

125126
if (!dataInputToProcess.length) {

packages/core/core-flows/src/region/workflows/update-regions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export const updateRegionsWorkflow = createWorkflow(
4545
): WorkflowResponse<WorkflowTypes.RegionWorkflow.UpdateRegionsWorkflowOutput> => {
4646
const normalizedInput = transform(input, (data) => {
4747
const { selector, update } = data
48-
const { payment_providers = [], is_tax_inclusive, ...rest } = update
48+
const { payment_providers, is_tax_inclusive, ...rest } = update
4949
return {
5050
selector,
5151
update: rest,

0 commit comments

Comments
 (0)