Fix/BOOK-662 handle overlapping dates timezone * fix(BOOK-662): handle overlapping dates alerts * fix(BOOK-662): handle overlapping dates alerts * fix(BOOK-662): add test same dates Approved-by: Anton Gunnarsson
71 lines
2.3 KiB
TypeScript
71 lines
2.3 KiB
TypeScript
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,
|
|
})
|
|
})
|
|
})
|