feat(medusa): Improve order edit retrieve active (#2244)
**What** - Improve `retrieveActive` to take into account `(confirmed/canceled/declined)_at` **Test** - one more Integration test on that case FIXES CORE-601
This commit is contained in:
1 parent
6da29c72c4
commit
74342fc1ea
2 files changed
+69
-2
No files matched your search
@@ -314,6 +314,7 @@ describe("[MEDUSA_FF_ORDER_EDITING] /admin/order-edits", () => {
|
|||||||
const prodId2 = IdMap.getId("prodId2")
|
const prodId2 = IdMap.getId("prodId2")
|
||||||
const lineItemId1 = IdMap.getId("line-item-1")
|
const lineItemId1 = IdMap.getId("line-item-1")
|
||||||
const lineItemId2 = IdMap.getId("line-item-2")
|
const lineItemId2 = IdMap.getId("line-item-2")
|
||||||
|
const confirmedOrderEditId = IdMap.getId("confirmed-order-edit")
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await adminSeeder(dbConnection)
|
await adminSeeder(dbConnection)
|
||||||
@@ -428,6 +429,64 @@ describe("[MEDUSA_FF_ORDER_EDITING] /admin/order-edits", () => {
|
|||||||
`An active order edit already exists for the order ${payload.order_id}`
|
`An active order edit already exists for the order ${payload.order_id}`
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("created a new order edit if none are active anymore", async () => {
|
||||||
|
const api = useApi()
|
||||||
|
|
||||||
|
await simpleOrderEditFactory(dbConnection, {
|
||||||
|
id: confirmedOrderEditId,
|
||||||
|
order_id: orderId,
|
||||||
|
internal_note: "test",
|
||||||
|
confirmed_at: new Date(),
|
||||||
|
created_by: "admin_user",
|
||||||
|
})
|
||||||
|
|
||||||
|
const payload = {
|
||||||
|
order_id: orderId,
|
||||||
|
internal_note: "This is an internal note",
|
||||||
|
}
|
||||||
|
|
||||||
|
const response = await api.post(
|
||||||
|
`/admin/order-edits/`,
|
||||||
|
payload,
|
||||||
|
adminHeaders
|
||||||
|
)
|
||||||
|
|
||||||
|
expect(response.status).toEqual(200)
|
||||||
|
expect(response.data.order_edit).toEqual(
|
||||||
|
expect.objectContaining({
|
||||||
|
order_id: orderId,
|
||||||
|
created_by: "admin_user",
|
||||||
|
requested_by: null,
|
||||||
|
canceled_by: null,
|
||||||
|
confirmed_by: null,
|
||||||
|
internal_note: "This is an internal note",
|
||||||
|
items: expect.arrayContaining([
|
||||||
|
expect.objectContaining({
|
||||||
|
id: lineItemId1,
|
||||||
|
quantity: 1,
|
||||||
|
fulfilled_quantity: 1,
|
||||||
|
shipped_quantity: 1,
|
||||||
|
unit_price: 1000,
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
id: lineItemId2,
|
||||||
|
quantity: 1,
|
||||||
|
fulfilled_quantity: 1,
|
||||||
|
shipped_quantity: 1,
|
||||||
|
unit_price: 1000,
|
||||||
|
}),
|
||||||
|
]),
|
||||||
|
shipping_total: 0,
|
||||||
|
gift_card_total: 0,
|
||||||
|
gift_card_tax_total: 0,
|
||||||
|
discount_total: 0,
|
||||||
|
tax_total: 0,
|
||||||
|
total: 2000,
|
||||||
|
subtotal: 2000,
|
||||||
|
})
|
||||||
|
)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("POST /admin/order-edits/:id/request", () => {
|
describe("POST /admin/order-edits/:id/request", () => {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { EntityManager } from "typeorm"
|
import { EntityManager, IsNull } from "typeorm"
|
||||||
import { FindConfig } from "../types/common"
|
import { FindConfig } from "../types/common"
|
||||||
import { buildQuery, isDefined } from "../utils"
|
import { buildQuery, isDefined } from "../utils"
|
||||||
import { MedusaError } from "medusa-core-utils"
|
import { MedusaError } from "medusa-core-utils"
|
||||||
@@ -102,7 +102,15 @@ export default class OrderEditService extends TransactionBaseService {
|
|||||||
this.orderEditRepository_
|
this.orderEditRepository_
|
||||||
)
|
)
|
||||||
|
|
||||||
const query = buildQuery({ order_id: orderId }, config)
|
const query = buildQuery(
|
||||||
|
{
|
||||||
|
order_id: orderId,
|
||||||
|
confirmed_at: IsNull(),
|
||||||
|
canceled_at: IsNull(),
|
||||||
|
declined_at: IsNull(),
|
||||||
|
},
|
||||||
|
config
|
||||||
|
)
|
||||||
return await orderEditRepository.findOne(query)
|
return await orderEditRepository.findOne(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user