22 lines
804 B
TypeScript
22 lines
804 B
TypeScript
import { expect, test, describe } from "vitest";
|
|
import { calcCart } from "./calcCart";
|
|
import { testDiscounts } from "./mockData/discounts";
|
|
import { cartTestResults } from "./mockData/results";
|
|
import { testTariffs } from "./mockData/tariffs";
|
|
|
|
|
|
describe("Cart calculation", () => {
|
|
for (let i = 0; i < cartTestResults.length; i++) {
|
|
test(`Cart calculation №${i}`, () => {
|
|
const usedTariffsMask = cartTestResults[i][1];
|
|
const isNkoApplied = Boolean(usedTariffsMask.pop());
|
|
|
|
const tariffs = testTariffs.filter((_, index) => (usedTariffsMask[index] === 1));
|
|
|
|
const cart = calcCart(tariffs, testDiscounts, 0, "someuserid", isNkoApplied);
|
|
|
|
expect(cart.priceAfterDiscounts).toBeCloseTo(cartTestResults[i][0]);
|
|
});
|
|
}
|
|
});
|