feat(core-flows,medusa,utils,types): adds delivered_quantity to order (#9130)

what:

- adds delivered_quantity to order


https://github.com/user-attachments/assets/709b1727-08ed-4a88-ae29-38f13540e301
This commit is contained in:
Riqwan Thamir
2024-09-16 11:59:01 +02:00
committed by GitHub
parent 950cf9af79
commit 3e97a64b21
41 changed files with 794 additions and 25 deletions

View File

@@ -195,5 +195,18 @@ export async function createOrderSeeder({ api, container }) {
order = (await api.get(`/admin/orders/${order.id}`, adminHeaders)).data.order
return order
return {
order,
region,
salesChannel,
stockLocation,
inventoryItem,
shippingProfile,
product,
fulfillmentSets,
fulfillmentSet,
shippingOption,
cart,
paymentCollection,
}
}

View File

@@ -0,0 +1,88 @@
import { ModuleRegistrationName } from "@medusajs/utils"
import { medusaIntegrationTestRunner } from "medusa-test-utils"
import {
adminHeaders,
createAdminUser,
} from "../../../../helpers/create-admin-user"
import { setupTaxStructure } from "../../../../modules/__tests__/fixtures"
import { createOrderSeeder } from "../../fixtures/order"
jest.setTimeout(30000)
medusaIntegrationTestRunner({
testSuite: ({ dbConnection, getContainer, api }) => {
let order, seeder
beforeEach(async () => {
const container = getContainer()
await setupTaxStructure(container.resolve(ModuleRegistrationName.TAX))
await createAdminUser(dbConnection, adminHeaders, container)
seeder = await createOrderSeeder({ api, container })
order = seeder.order
order = (await api.get(`/admin/orders/${order.id}`, adminHeaders)).data
.order
})
describe("POST /orders/:id/fulfillments/:id/mark-as-delivered", () => {
it("should mark fulfillable item as delivered", async () => {
let fulfillableItem = order.items.find(
(item) => item.detail.fulfilled_quantity < item.detail.quantity
)
await api.post(
`/admin/orders/${order.id}/fulfillments`,
{
location_id: seeder.stockLocation.id,
items: [
{
id: fulfillableItem.id,
quantity: 1,
},
],
},
adminHeaders
)
order = (await api.get(`/admin/orders/${order.id}`, adminHeaders)).data
.order
expect(order.items[0].detail).toEqual(
expect.objectContaining({
fulfilled_quantity: 1,
delivered_quantity: 0,
})
)
await api.post(
`/admin/orders/${order.id}/fulfillments/${order.fulfillments[0].id}/mark-as-delivered`,
{},
adminHeaders
)
order = (await api.get(`/admin/orders/${order.id}`, adminHeaders)).data
.order
expect(order.items[0].detail).toEqual(
expect.objectContaining({
fulfilled_quantity: 1,
delivered_quantity: 1,
})
)
const { response } = await api
.post(
`/admin/orders/${order.id}/fulfillments/${order.fulfillments[0].id}/mark-as-delivered`,
{},
adminHeaders
)
.catch((e) => e)
expect(response.data).toEqual({
type: "not_allowed",
message: "Fulfillment has already been marked delivered",
})
})
})
},
})

View File

@@ -24,7 +24,8 @@ medusaIntegrationTestRunner({
await setupTaxStructure(container.resolve(Modules.TAX))
await createAdminUser(dbConnection, adminHeaders, container)
order = await createOrderSeeder({ api, container })
const seeders = await createOrderSeeder({ api, container })
order = seeders.order
shippingProfile = (
await api.post(
@@ -157,7 +158,7 @@ medusaIntegrationTestRunner({
})
describe("RMA Flows", () => {
it.only("should verify order summary at each level", async () => {
it("should verify order summary at each level", async () => {
/* Case:
Purchased:
items: {

View File

@@ -37,7 +37,8 @@ medusaIntegrationTestRunner({
beforeEach(async () => {
container = getContainer()
await createAdminUser(dbConnection, adminHeaders, container)
order = await createOrderSeeder({ api, container })
const seeders = await createOrderSeeder({ api, container })
order = seeders.order
await api.post(
`/admin/orders/${order.id}/fulfillments`,