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