Skip to content

Commit

Permalink
fix(pricing): Calculate price sets with amount 0 (#8622)
Browse files Browse the repository at this point in the history
  • Loading branch information
olivermrbl authored Aug 16, 2024
1 parent 559a6d7 commit 2f62b47
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -897,6 +897,61 @@ moduleIntegrationTestRunner<IPricingModuleService>({
])
})

it("should return a price of 0", async () => {
const priceSet = await service.createPriceSets({
prices: [
{
amount: 0,
currency_code: "USD",
},
],
})

const priceSetsResult = await service.calculatePrices(
{ id: [priceSet.id] },
{
context: {
currency_code: "USD",
},
}
)

expect(priceSetsResult).toEqual([
{
id: priceSet.id,
is_calculated_price_price_list: false,
is_calculated_price_tax_inclusive: false,
calculated_amount: 0,
raw_calculated_amount: {
value: "0",
precision: 20,
},
is_original_price_price_list: false,
is_original_price_tax_inclusive: false,
original_amount: 0,
raw_original_amount: {
value: "0",
precision: 20,
},
currency_code: "USD",
calculated_price: {
id: expect.any(String),
price_list_id: null,
price_list_type: null,
min_quantity: null,
max_quantity: null,
},
original_price: {
id: expect.any(String),
price_list_id: null,
price_list_type: null,
min_quantity: null,
max_quantity: null,
},
},
])
})

describe("Price Lists", () => {
it("should return price list prices when price list conditions match", async () => {
await createPriceLists(service)
Expand Down
11 changes: 7 additions & 4 deletions packages/modules/pricing/src/services/pricing-module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,7 @@ export default class PricingModuleService
defaultPrice
let originalPrice: PricingTypes.CalculatedPriceSetDTO | undefined =
defaultPrice

if (priceListPrice) {
calculatedPrice = priceListPrice

Expand Down Expand Up @@ -338,8 +339,9 @@ export default class PricingModuleService
calculatedPrice.currency_code!,
pricingContext.context?.region_id as string
),
calculated_amount:
parseFloat((calculatedPrice?.amount as string) || "") || null,
calculated_amount: isPresent(calculatedPrice?.amount)
? parseFloat(calculatedPrice?.amount as string)
: null,
raw_calculated_amount: calculatedPrice?.raw_amount || null,

is_original_price_price_list: !!originalPrice?.price_list_id,
Expand All @@ -351,8 +353,9 @@ export default class PricingModuleService
pricingContext.context?.region_id as string
)
: false,
original_amount:
parseFloat((originalPrice?.amount as string) || "") || null,
original_amount: isPresent(originalPrice?.amount)
? parseFloat(originalPrice?.amount as string)
: null,
raw_original_amount: originalPrice?.raw_amount || null,

currency_code: calculatedPrice?.currency_code || null,
Expand Down

0 comments on commit 2f62b47

Please sign in to comment.