hotfix: bug related to region update with no shipping address (#415)
This commit is contained in:
committed by
GitHub
parent
a70e3ed0ae
commit
85de2039cc
@@ -112,6 +112,24 @@ describe("/store/carts", () => {
|
||||
await doAfterEach()
|
||||
})
|
||||
|
||||
// We were experiencing some issues when having created a cart in a region
|
||||
// containing multiple countries. At this point, the cart does not have a shipping
|
||||
// address. Therefore, on subsequent requests to update the cart, the server
|
||||
// would throw a 500 due to missing shipping address id on insertion.
|
||||
it("updates a cart, that does not have a shipping address", async () => {
|
||||
const api = useApi()
|
||||
|
||||
const response = await api.post("/store/carts", {
|
||||
region_id: "test-region-multiple",
|
||||
})
|
||||
|
||||
const getRes = await api.post(`/store/carts/${response.data.cart.id}`, {
|
||||
region_id: "test-region",
|
||||
})
|
||||
|
||||
expect(getRes.status).toEqual(200)
|
||||
})
|
||||
|
||||
it("fails on apply discount if limit has been reached", async () => {
|
||||
const api = useApi()
|
||||
|
||||
|
||||
@@ -40,6 +40,22 @@ module.exports = async (connection, data = {}) => {
|
||||
tax_rate: 0,
|
||||
})
|
||||
|
||||
// Region with multiple countries
|
||||
const regionWithMultipleCoutries = manager.create(Region, {
|
||||
id: "test-region-multiple",
|
||||
name: "Test Region",
|
||||
currency_code: "eur",
|
||||
tax_rate: 0,
|
||||
})
|
||||
|
||||
await manager.save(regionWithMultipleCoutries)
|
||||
await manager.query(
|
||||
`UPDATE "country" SET region_id='test-region-multiple' WHERE iso_2 = 'no'`
|
||||
)
|
||||
await manager.query(
|
||||
`UPDATE "country" SET region_id='test-region-multiple' WHERE iso_2 = 'dk'`
|
||||
)
|
||||
|
||||
const freeRule = manager.create(DiscountRule, {
|
||||
id: "free-shipping-rule",
|
||||
description: "Free shipping rule",
|
||||
|
||||
@@ -1083,6 +1083,9 @@ describe("CartService", () => {
|
||||
id: "region",
|
||||
countries: [{ iso_2: "us" }],
|
||||
},
|
||||
shipping_address: {
|
||||
country_code: "us",
|
||||
},
|
||||
items: [IdMap.getId("testitem"), null],
|
||||
payment_session: null,
|
||||
payment_sessions: [],
|
||||
|
||||
@@ -1446,7 +1446,7 @@ class CartService extends BaseService {
|
||||
}
|
||||
}
|
||||
|
||||
await addrRepo.save(updated)
|
||||
await this.updateShippingAddress_(cart, updated, addrRepo)
|
||||
}
|
||||
|
||||
// Shipping methods are determined by region so the user needs to find a
|
||||
|
||||
Reference in New Issue
Block a user