fix(core-flows): fulfillment reservation check (#11735)

This commit is contained in:
Frane Polić
2025-03-09 13:47:10 +01:00
committed by GitHub
parent b7678983a9
commit 70eaaa9196
9 changed files with 84 additions and 22 deletions

View File

@@ -331,6 +331,17 @@ medusaIntegrationTestRunner({
},
])
// create reservation for inventory item that is initially on the order
const inventoryModule = container.resolve(Modules.INVENTORY)
await inventoryModule.createReservationItems([
{
inventory_item_id: inventoryItem.id,
location_id: location.id,
quantity: 2,
line_item_id: order.items[0].id,
},
])
const shippingOptionPayload = {
name: "Return shipping",
service_zone_id: fulfillmentSet.service_zones[0].id,

View File

@@ -325,6 +325,17 @@ medusaIntegrationTestRunner({
},
])
// create reservation for inventory item that is initially on the order
const inventoryModule = container.resolve(Modules.INVENTORY)
await inventoryModule.createReservationItems([
{
inventory_item_id: inventoryItem.id,
location_id: location.id,
quantity: 2,
line_item_id: order.items[0].id,
},
])
const shippingOptionPayload = {
name: "Return shipping",
service_zone_id: fulfillmentSet.service_zones[0].id,

View File

@@ -17,6 +17,7 @@ medusaIntegrationTestRunner({
let location
let item
let returnShippingOption
let outboundShippingOption
const shippingProviderId = "manual_test-provider"
beforeEach(async () => {
@@ -135,7 +136,7 @@ medusaIntegrationTestRunner({
prices: [
{
currency_code: "usd",
amount: 20,
amount: 0, // Free shipping
},
],
rules: [
@@ -160,7 +161,7 @@ medusaIntegrationTestRunner({
)
).data.shipping_option
const outboundShippingOption = (
outboundShippingOption = (
await api.post(
"/admin/shipping-options",
outboundShippingOptionPayload,
@@ -289,6 +290,15 @@ medusaIntegrationTestRunner({
adminHeaders
)
// If claim has outbound items, we need to set the outbound shipping method for reservation to be created
// TODO: change condition in confirm workfow to crate reservation depending on shipping since we can have
// reservations for inventory items that don't require shipping
await api.post(
`/admin/claims/${singleOutboundClaim.id}/outbound/shipping-method`,
{ shipping_option_id: outboundShippingOption.id },
adminHeaders
)
await api.post(
`/admin/claims/${singleOutboundClaim.id}/request`,
{},

View File

@@ -239,6 +239,17 @@ medusaIntegrationTestRunner({
},
])
// create reservation for inventory item that is initially on the order
const inventoryModule = container.resolve(Modules.INVENTORY)
await inventoryModule.createReservationItems([
{
inventory_item_id: inventoryItem.id,
location_id: location.id,
quantity: 2,
line_item_id: order.items[0].id,
},
])
const shippingOptionPayload = {
name: "Return shipping",
service_zone_id: fulfillmentSet.service_zones[0].id,
@@ -866,7 +877,9 @@ medusaIntegrationTestRunner({
adminHeaders
)
).data.inventory_levels
expect(inventoryLevel[0].stocked_quantity).toEqual(2)
// we had 2 items in stock that were reserved for the order and then fulfilled
expect(inventoryLevel[0].stocked_quantity).toEqual(0)
let result = await api.post(
`/admin/returns/${returnId}/receive`,
@@ -987,7 +1000,7 @@ medusaIntegrationTestRunner({
adminHeaders
)
).data.inventory_levels
expect(inventoryLevel[0].stocked_quantity).toEqual(3)
expect(inventoryLevel[0].stocked_quantity).toEqual(1)
})
})