fix(medusa): order retrieval missing relations + allow for expand (#2267)
**What** Fix missing relation on the order retrieval endpoint as well as allow the expand fields FIXES CORE-578
This commit is contained in:
committed by
GitHub
parent
9a532de7bd
commit
a2bb504e6e
@@ -236,7 +236,9 @@ describe("/admin/orders", () => {
|
||||
const manager = dbConnection.manager
|
||||
|
||||
await manager.query(
|
||||
`UPDATE "product_variant" SET manage_inventory=false WHERE id = 'test-variant'`
|
||||
`UPDATE "product_variant"
|
||||
SET manage_inventory= false
|
||||
WHERE id = 'test-variant'`
|
||||
)
|
||||
|
||||
const initialInventoryRes = await api.get("/store/variants/test-variant")
|
||||
@@ -1346,7 +1348,9 @@ describe("/admin/orders", () => {
|
||||
const manager = dbConnection.manager
|
||||
|
||||
await manager.query(
|
||||
`UPDATE "product_variant" SET manage_inventory=false WHERE id = 'test-variant'`
|
||||
`UPDATE "product_variant"
|
||||
SET manage_inventory= false
|
||||
WHERE id = 'test-variant'`
|
||||
)
|
||||
|
||||
const returned = await api.post(
|
||||
@@ -1955,7 +1959,7 @@ describe("/admin/orders", () => {
|
||||
}
|
||||
)
|
||||
|
||||
// find item to test returned quantiy for
|
||||
// find item to test returned quantity for
|
||||
const toTest = returnedOrderSecond.data.order.items.find(
|
||||
(i) => i.id === "test-item-many"
|
||||
)
|
||||
@@ -2057,6 +2061,54 @@ describe("/admin/orders", () => {
|
||||
expect(received.status).toEqual(200)
|
||||
})
|
||||
|
||||
it("creates a swap with return and return shipping", async () => {
|
||||
const api = useApi()
|
||||
|
||||
const response = await api.post(
|
||||
"/admin/orders/test-order/swaps",
|
||||
{
|
||||
return_items: [
|
||||
{
|
||||
item_id: "test-item",
|
||||
quantity: 1,
|
||||
},
|
||||
],
|
||||
return_shipping: { option_id: "test-return-option", price: 0 },
|
||||
},
|
||||
{
|
||||
headers: {
|
||||
authorization: "Bearer test_token",
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
expect(response.status).toEqual(200)
|
||||
|
||||
const swap = response.data.order.swaps[0]
|
||||
expect(swap.return_order.items).toHaveLength(1)
|
||||
expect(swap.return_order.items[0]).toEqual(
|
||||
expect.objectContaining({
|
||||
item_id: "test-item",
|
||||
quantity: 1,
|
||||
})
|
||||
)
|
||||
|
||||
expect(swap.return_order.shipping_method).toEqual(
|
||||
expect.objectContaining({
|
||||
price: 0,
|
||||
shipping_option_id: "test-return-option",
|
||||
})
|
||||
)
|
||||
|
||||
expect(swap.return_order.shipping_method.tax_lines).toHaveLength(1)
|
||||
expect(swap.return_order.shipping_method.tax_lines[0]).toEqual(
|
||||
expect.objectContaining({
|
||||
rate: 0,
|
||||
name: "default",
|
||||
})
|
||||
)
|
||||
})
|
||||
|
||||
it("creates a return on a swap", async () => {
|
||||
const api = useApi()
|
||||
|
||||
|
||||
@@ -1,77 +1,7 @@
|
||||
import { IdMap } from "medusa-test-utils"
|
||||
import { request } from "../../../../../helpers/test-request"
|
||||
import { OrderServiceMock } from "../../../../../services/__mocks__/order"
|
||||
|
||||
const defaultRelations = [
|
||||
"customer",
|
||||
"billing_address",
|
||||
"shipping_address",
|
||||
"discounts",
|
||||
"discounts.rule",
|
||||
"shipping_methods",
|
||||
"payments",
|
||||
"fulfillments",
|
||||
"fulfillments.tracking_links",
|
||||
"fulfillments.items",
|
||||
"returns",
|
||||
"returns.shipping_method",
|
||||
"returns.shipping_method.tax_lines",
|
||||
"returns.items",
|
||||
"returns.items.reason",
|
||||
"gift_cards",
|
||||
"gift_card_transactions",
|
||||
"claims",
|
||||
"claims.return_order",
|
||||
"claims.return_order.shipping_method",
|
||||
"claims.shipping_methods",
|
||||
"claims.shipping_address",
|
||||
"claims.additional_items",
|
||||
"claims.fulfillments",
|
||||
"claims.fulfillments.tracking_links",
|
||||
"claims.claim_items",
|
||||
"claims.claim_items.item",
|
||||
"claims.claim_items.images",
|
||||
"swaps",
|
||||
"swaps.return_order",
|
||||
"swaps.payment",
|
||||
"swaps.shipping_methods",
|
||||
"swaps.shipping_address",
|
||||
"swaps.additional_items",
|
||||
"swaps.fulfillments",
|
||||
"swaps.fulfillments.tracking_links",
|
||||
]
|
||||
|
||||
const defaultFields = [
|
||||
"id",
|
||||
"status",
|
||||
"fulfillment_status",
|
||||
"payment_status",
|
||||
"display_id",
|
||||
"cart_id",
|
||||
"draft_order_id",
|
||||
"customer_id",
|
||||
"email",
|
||||
"region_id",
|
||||
"currency_code",
|
||||
"tax_rate",
|
||||
"canceled_at",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
"metadata",
|
||||
"items.refundable",
|
||||
"swaps.additional_items.refundable",
|
||||
"claims.additional_items.refundable",
|
||||
"shipping_total",
|
||||
"discount_total",
|
||||
"tax_total",
|
||||
"refunded_total",
|
||||
"gift_card_total",
|
||||
"subtotal",
|
||||
"total",
|
||||
"paid_total",
|
||||
"refundable_amount",
|
||||
"no_notification",
|
||||
]
|
||||
import { defaultAdminOrdersFields, defaultAdminOrdersRelations } from "../index"
|
||||
|
||||
describe("GET /admin/orders", () => {
|
||||
describe("successfully gets an order", () => {
|
||||
@@ -100,8 +30,8 @@ describe("GET /admin/orders", () => {
|
||||
expect(OrderServiceMock.retrieve).toHaveBeenCalledWith(
|
||||
IdMap.getId("test-order"),
|
||||
{
|
||||
select: defaultFields,
|
||||
relations: defaultRelations,
|
||||
select: defaultAdminOrdersFields,
|
||||
relations: defaultAdminOrdersRelations,
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
@@ -3,7 +3,7 @@ import "reflect-metadata"
|
||||
import { Order } from "../../../.."
|
||||
import {
|
||||
DeleteResponse,
|
||||
EmptyQueryParams,
|
||||
FindParams,
|
||||
PaginatedResponse,
|
||||
} from "../../../../types/common"
|
||||
import middlewares, { transformQuery } from "../../../middlewares"
|
||||
@@ -45,7 +45,7 @@ export default (app, featureFlagRouter: FlagRouter) => {
|
||||
*/
|
||||
route.get(
|
||||
"/:id",
|
||||
transformQuery(EmptyQueryParams, {
|
||||
transformQuery(FindParams, {
|
||||
defaultRelations: relations,
|
||||
defaultFields: defaultAdminOrdersFields,
|
||||
allowedFields: allowedAdminOrdersFields,
|
||||
@@ -260,6 +260,7 @@ export const defaultAdminOrdersRelations = [
|
||||
"claims",
|
||||
"claims.return_order",
|
||||
"claims.return_order.shipping_method",
|
||||
"claims.return_order.shipping_method.tax_lines",
|
||||
"claims.shipping_methods",
|
||||
"claims.shipping_address",
|
||||
"claims.additional_items",
|
||||
@@ -271,8 +272,11 @@ export const defaultAdminOrdersRelations = [
|
||||
// "claims.claim_items.tags",
|
||||
"swaps",
|
||||
"swaps.return_order",
|
||||
"swaps.return_order.shipping_method",
|
||||
"swaps.return_order.shipping_method.tax_lines",
|
||||
"swaps.payment",
|
||||
"swaps.shipping_methods",
|
||||
"swaps.shipping_methods.tax_lines",
|
||||
"swaps.shipping_address",
|
||||
"swaps.additional_items",
|
||||
"swaps.fulfillments",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Router } from "express"
|
||||
import "reflect-metadata"
|
||||
import { Product, ProductTag, ProductType } from "../../../.."
|
||||
import { EmptyQueryParams, PaginatedResponse } from "../../../../types/common"
|
||||
import { FindParams, PaginatedResponse } from "../../../../types/common"
|
||||
import { PricedProduct } from "../../../../types/pricing"
|
||||
import { FlagRouter } from "../../../../utils/flag-router"
|
||||
import middlewares, { transformQuery } from "../../../middlewares"
|
||||
@@ -70,7 +70,7 @@ export default (app, featureFlagRouter: FlagRouter) => {
|
||||
)
|
||||
route.get(
|
||||
"/:id",
|
||||
transformQuery(EmptyQueryParams, {
|
||||
transformQuery(FindParams, {
|
||||
defaultRelations: defaultAdminProductRelations,
|
||||
defaultFields: defaultAdminProductFields,
|
||||
allowedFields: allowedAdminProductFields,
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import { Router } from "express"
|
||||
import "reflect-metadata"
|
||||
import { Cart, Order, Swap } from "../../../../"
|
||||
import { DeleteResponse, EmptyQueryParams } from "../../../../types/common"
|
||||
import { DeleteResponse, FindParams } from "../../../../types/common"
|
||||
import middlewares, {
|
||||
transformBody,
|
||||
transformQuery,
|
||||
} from "../../../middlewares"
|
||||
import { StorePostCartsCartReq } from "./update-cart"
|
||||
import { StorePostCartReq } from "./create-cart"
|
||||
|
||||
const route = Router()
|
||||
|
||||
export default (app, container) => {
|
||||
@@ -28,7 +29,7 @@ export default (app, container) => {
|
||||
|
||||
route.get(
|
||||
"/:id",
|
||||
transformQuery(EmptyQueryParams, {
|
||||
transformQuery(FindParams, {
|
||||
defaultRelations: defaultStoreCartRelations,
|
||||
defaultFields: defaultStoreCartFields,
|
||||
isList: false,
|
||||
|
||||
Reference in New Issue
Block a user