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:
committed by
GitHub
parent
6da29c72c4
commit
74342fc1ea
@@ -314,6 +314,7 @@ describe("[MEDUSA_FF_ORDER_EDITING] /admin/order-edits", () => {
|
||||
const prodId2 = IdMap.getId("prodId2")
|
||||
const lineItemId1 = IdMap.getId("line-item-1")
|
||||
const lineItemId2 = IdMap.getId("line-item-2")
|
||||
const confirmedOrderEditId = IdMap.getId("confirmed-order-edit")
|
||||
|
||||
beforeEach(async () => {
|
||||
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}`
|
||||
)
|
||||
})
|
||||
|
||||
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", () => {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { EntityManager } from "typeorm"
|
||||
import { EntityManager, IsNull } from "typeorm"
|
||||
import { FindConfig } from "../types/common"
|
||||
import { buildQuery, isDefined } from "../utils"
|
||||
import { MedusaError } from "medusa-core-utils"
|
||||
@@ -102,7 +102,15 @@ export default class OrderEditService extends TransactionBaseService {
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user