fix: create cart with items (#851)

* fix: create cart with items

* remove: verbose mode

* fix: unit test
This commit is contained in:
Zakaria El Asri
2021-12-01 10:53:01 +01:00
committed by GitHub
parent 032fcb97ca
commit 74bc9c618f
5 changed files with 143 additions and 68 deletions

View File

@@ -98,19 +98,17 @@ describe("POST /store/carts", () => {
})
it("calls line item generate", () => {
expect(LineItemServiceMock.create).toHaveBeenCalledTimes(2)
expect(LineItemServiceMock.create).toHaveBeenCalledWith({
variant_id: IdMap.getId("testVariant"),
quantity: 3,
region_id: IdMap.getId("testRegion"),
cart_id: IdMap.getId("regionCart"),
})
expect(LineItemServiceMock.create).toHaveBeenCalledWith({
variant_id: IdMap.getId("testVariant1"),
quantity: 1,
region_id: IdMap.getId("testRegion"),
cart_id: IdMap.getId("regionCart"),
})
expect(LineItemServiceMock.generate).toHaveBeenCalledWith(
IdMap.getId("testVariant"),
IdMap.getId("testRegion"),
3
)
expect(LineItemServiceMock.generate).toHaveBeenCalledWith(
IdMap.getId("testVariant1"),
IdMap.getId("testRegion"),
1
)
expect(CartServiceMock.addLineItem).toHaveBeenCalledTimes(2)
})
it("returns cart", () => {

View File

@@ -117,17 +117,17 @@ export default async (req, res) => {
country_code: validated.country_code.toLowerCase(),
}
}
let cart = await cartService.withTransaction(manager).create(toCreate)
if (validated.items) {
await Promise.all(
validated.items.map(async (i) => {
await lineItemService.withTransaction(manager).create({
cart_id: cart.id,
variant_id: i.variant_id,
quantity: i.quantity,
region_id: validated.region_id,
})
validated.items.map(async i => {
const lineItem = await lineItemService
.withTransaction(manager)
.generate(i.variant_id, regionId, i.quantity)
await cartService
.withTransaction(manager)
.addLineItem(cart.id, lineItem)
})
)
}