fix(medusa): Throw on line item generation if variant does not have a price (#3766)

This commit is contained in:
Adrien de Peretti authored and GitHub committed 2023-04-08 18:32:59 +02:00
1 parent d533caa4c2
commit 1a60c6f58d
6 files changed
+66 -3

No files matched your search

@@ -7,8 +7,8 @@ const validRegionId = IdMap.getId("region-france")
describe("POST /admin/discounts", () => {
const adminSession = {
jwt: {
userId: IdMap.getId("admin_user")
}
userId: IdMap.getId("admin_user"),
},
}
describe("successful creation", () => {
+2 -1
View File
@@ -1,4 +1,4 @@
import { isDefined, MedusaError } from "medusa-core-utils"
import { MedusaError } from "medusa-core-utils"
import {
EntityManager,
FindOptionsWhere,
@@ -29,6 +29,7 @@ import EventBusService from "./event-bus"
import LineItemService from "./line-item"
import ProductVariantService from "./product-variant"
import ShippingOptionService from "./shipping-option"
import { isDefined } from "@medusajs/utils"
type InjectedDependencies = {
manager: EntityManager
@@ -332,6 +332,15 @@ class LineItemService extends TransactionBaseService {
unit_price = context.variantPricing?.calculated_price ?? undefined
}
if (unit_price == null) {
throw new MedusaError(
MedusaError.Types.INVALID_DATA,
`Cannot generate line item for variant "${
variant.title ?? variant.product.title ?? variant.id
}" without a price`
)
}
const rawLineItem: Partial<LineItem> = {
unit_price: unit_price,
title: variant.product.title,