import { describe, expect, it } from "vitest" import { CurrencyEnum } from "@scandic-hotels/common/constants/currency" import { calculateVat, sumPackages, sumPackagesRequestedPrice } from "./index" describe("sumPackages", () => { it("returns 0 price for null packages", () => { const result = sumPackages(null) expect(result).toEqual({ currency: undefined, price: 0 }) }) it("returns 0 price for undefined packages", () => { const result = sumPackages(undefined) expect(result).toEqual({ currency: undefined, price: 0 }) }) it("returns 0 price for empty packages", () => { const result = sumPackages([]) expect(result).toEqual({ currency: undefined, price: 0 }) }) it("sums prices of packages", () => { const result = sumPackages([ { localPrice: { totalPrice: 100, currency: CurrencyEnum.SEK } }, { localPrice: { totalPrice: 200, currency: CurrencyEnum.SEK } }, { localPrice: { totalPrice: 50, currency: CurrencyEnum.SEK } }, ]) expect(result).toEqual({ currency: CurrencyEnum.SEK, price: 350 }) }) }) describe("sumPackagesRequestedPrice", () => { it("returns 0 price for null packages", () => { const result = sumPackagesRequestedPrice(null) expect(result).toEqual({ currency: undefined, price: 0 }) }) it("returns 0 price for undefined packages", () => { const result = sumPackagesRequestedPrice(undefined) expect(result).toEqual({ currency: undefined, price: 0 }) }) it("returns 0 price for empty packages", () => { const result = sumPackagesRequestedPrice([]) expect(result).toEqual({ currency: undefined, price: 0 }) }) it("sums prices of packages", () => { const result = sumPackagesRequestedPrice([ { requestedPrice: { totalPrice: 100, currency: CurrencyEnum.SEK } }, { requestedPrice: { totalPrice: 200, currency: CurrencyEnum.SEK } }, { requestedPrice: { totalPrice: 50, currency: CurrencyEnum.SEK } }, ]) expect(result).toEqual({ currency: CurrencyEnum.SEK, price: 350 }) }) }) describe("calculateVat", () => { it("calculates VAT correctly", () => { expect(calculateVat(100, 25)).toEqual({ priceExclVat: 80, vatAmount: 20, }) expect(calculateVat(5, 100)).toEqual({ priceExclVat: 2.5, vatAmount: 2.5, }) }) })