From 40a61e888e6b46182a8fce169aa9c9cd73cb07f6 Mon Sep 17 00:00:00 2001 From: nflnkr <105123049+nflnkr@users.noreply.github.com> Date: Sat, 25 Feb 2023 16:56:14 +0300 Subject: [PATCH] add cart calculation tests --- .../Content/Tariffs/cartCalcs.test.ts | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/pages/dashboard/Content/Tariffs/cartCalcs.test.ts diff --git a/src/pages/dashboard/Content/Tariffs/cartCalcs.test.ts b/src/pages/dashboard/Content/Tariffs/cartCalcs.test.ts new file mode 100644 index 0000000..698e1f3 --- /dev/null +++ b/src/pages/dashboard/Content/Tariffs/cartCalcs.test.ts @@ -0,0 +1,37 @@ +import { Cart } from "../../../../model/cart"; +import { Tariffs } from "../../../../model/tariff"; +import { User } from "../../../../model/user"; +import { exampleCartValues } from "../../../../stores/mocks/exampleCartValues"; +import { calcCartData } from "./cartCalcs"; + + +function findPrivilegeById(id: string) { + const privilege = exampleCartValues.privileges.find(privilege => privilege.privilegeId === id); + if (!privilege) throw new Error(`Privilege not found with id ${id}`); + + return privilege; +} + +describe("cart tests", () => { + it("test case 1", () => { + const user: User = exampleCartValues.testCases[0].input.UserInformation; + const tariffs: Tariffs.Tariff[] = exampleCartValues.testCases[0].input.Products.map((testProduct) => ({ + amount: testProduct.Amount, + customPrice: testProduct.Price, + privilege: findPrivilegeById(testProduct.ID) + })); + const cartItems: Cart.CartItem[] = tariffs.map(tariff => { + const pricePerUnit = tariff.customPrice ?? tariff.privilege.price; + const price = pricePerUnit * tariff.amount; + + const cartItem: Cart.CartItem = { + item: tariff, + price, + }; + + return cartItem; + }); + + // TODO + }); +}); \ No newline at end of file