fix(medusa): Upsert addresses on Orders (#3153)
This commit is contained in:
committed by
GitHub
parent
f776ed234f
commit
b242e22326
5
.changeset/quick-rivers-hear.md
Normal file
5
.changeset/quick-rivers-hear.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@medusajs/medusa": patch
|
||||
---
|
||||
|
||||
fix(medusa): Upsert addresses on Orders
|
||||
@@ -127,6 +127,84 @@ describe("/admin/orders", () => {
|
||||
updated_at: expect.any(String),
|
||||
})
|
||||
})
|
||||
|
||||
it("creates a billing address", async () => {
|
||||
const api = useApi()
|
||||
|
||||
await dbConnection.manager.query(
|
||||
`update "order" set billing_address_id = null where id = 'test-order'`
|
||||
)
|
||||
|
||||
const response = await api
|
||||
.post(
|
||||
"/admin/orders/test-order",
|
||||
{
|
||||
billing_address: {
|
||||
first_name: "asafas",
|
||||
last_name: "safas",
|
||||
address_1: "asfsa",
|
||||
city: "safas",
|
||||
country_code: "us",
|
||||
postal_code: "3243",
|
||||
},
|
||||
},
|
||||
adminReqConfig
|
||||
)
|
||||
.catch((err) => {
|
||||
console.log(err.response.data)
|
||||
})
|
||||
|
||||
expect(response.status).toEqual(200)
|
||||
expect(response.data.order.billing_address).toEqual(
|
||||
expect.objectContaining({
|
||||
first_name: "asafas",
|
||||
last_name: "safas",
|
||||
address_1: "asfsa",
|
||||
city: "safas",
|
||||
country_code: "us",
|
||||
postal_code: "3243",
|
||||
})
|
||||
)
|
||||
})
|
||||
|
||||
it("creates a shipping address", async () => {
|
||||
const api = useApi()
|
||||
|
||||
await dbConnection.manager.query(
|
||||
`update "order" set shipping_address_id = null where id = 'test-order'`
|
||||
)
|
||||
|
||||
const response = await api
|
||||
.post(
|
||||
"/admin/orders/test-order",
|
||||
{
|
||||
shipping_address: {
|
||||
first_name: "asafas",
|
||||
last_name: "safas",
|
||||
address_1: "asfsa",
|
||||
city: "safas",
|
||||
country_code: "us",
|
||||
postal_code: "3243",
|
||||
},
|
||||
},
|
||||
adminReqConfig
|
||||
)
|
||||
.catch((err) => {
|
||||
console.log(err.response.data)
|
||||
})
|
||||
|
||||
expect(response.status).toEqual(200)
|
||||
expect(response.data.order.shipping_address).toEqual(
|
||||
expect.objectContaining({
|
||||
first_name: "asafas",
|
||||
last_name: "safas",
|
||||
address_1: "asfsa",
|
||||
city: "safas",
|
||||
country_code: "us",
|
||||
postal_code: "3243",
|
||||
})
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
describe("GET /admin/orders", () => {
|
||||
|
||||
@@ -17,14 +17,14 @@ import {
|
||||
PaymentStatus,
|
||||
Return,
|
||||
Swap,
|
||||
TrackingLink,
|
||||
TrackingLink
|
||||
} from "../models"
|
||||
import { AddressRepository } from "../repositories/address"
|
||||
import { OrderRepository } from "../repositories/order"
|
||||
import { FindConfig, QuerySelector, Selector } from "../types/common"
|
||||
import {
|
||||
CreateFulfillmentOrder,
|
||||
FulFillmentItemType,
|
||||
FulFillmentItemType
|
||||
} from "../types/fulfillment"
|
||||
import { UpdateOrderInput } from "../types/orders"
|
||||
import { CreateShippingMethodDto } from "../types/shipping-options"
|
||||
@@ -48,7 +48,7 @@ import {
|
||||
ShippingOptionService,
|
||||
ShippingProfileService,
|
||||
TaxProviderService,
|
||||
TotalsService,
|
||||
TotalsService
|
||||
} from "."
|
||||
|
||||
export const ORDER_CART_ALREADY_EXISTS_ERROR = "Order from cart already exists"
|
||||
@@ -903,8 +903,7 @@ class OrderService extends TransactionBaseService {
|
||||
|
||||
await addrRepo.save({ ...addr, ...address })
|
||||
} else {
|
||||
const created = addrRepo.create({ ...address })
|
||||
await addrRepo.save(created)
|
||||
order.billing_address = addrRepo.create({ ...address })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -941,8 +940,7 @@ class OrderService extends TransactionBaseService {
|
||||
|
||||
await addrRepo.save({ ...addr, ...address })
|
||||
} else {
|
||||
const created = addrRepo.create({ ...address })
|
||||
await addrRepo.save(created)
|
||||
order.shipping_address = addrRepo.create({ ...address })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user