fix tests and test values

This commit is contained in:
nflnkr 2023-03-08 13:45:26 +03:00
parent 383725b641
commit 834617e526
3 changed files with 68 additions and 31 deletions

@ -1,7 +1,7 @@
import { CartItem } from "@root/model/cart"; import { CartItem } from "../../model/cart";
import { Tariff } from "@root/model/tariff"; import { SERVICE_LIST, Tariff } from "../../model/tariff";
import { User } from "@root/model/user"; import { User } from "../../model/user";
import { exampleCartValues, TestCase } from "@stores/mocks/exampleCartValues"; import { exampleCartValues, TestCase } from "../../stores/mocks/exampleCartValues";
import { calcCartData, createCartItem } from "./calc"; import { calcCartData, createCartItem } from "./calc";
@ -13,9 +13,12 @@ describe("cart tests", () => {
const testCase = prepareTestCase(exampleCartValues.testCases[0]); const testCase = prepareTestCase(exampleCartValues.testCases[0]);
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -34,9 +37,12 @@ describe("cart tests", () => {
}); });
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discountsWithoutTemplategen); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discountsWithoutTemplategen);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -55,9 +61,12 @@ describe("cart tests", () => {
}); });
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discountsWithoutTemplategen); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discountsWithoutTemplategen);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -76,9 +85,12 @@ describe("cart tests", () => {
}); });
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discountsWithoutTemplategen); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discountsWithoutTemplategen);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -97,9 +109,12 @@ describe("cart tests", () => {
}); });
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discountsWithoutTemplategen); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discountsWithoutTemplategen);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -110,9 +125,12 @@ describe("cart tests", () => {
const testCase = prepareTestCase(exampleCartValues.testCases[5]); const testCase = prepareTestCase(exampleCartValues.testCases[5]);
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -123,9 +141,12 @@ describe("cart tests", () => {
const testCase = prepareTestCase(exampleCartValues.testCases[6]); const testCase = prepareTestCase(exampleCartValues.testCases[6]);
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -136,9 +157,12 @@ describe("cart tests", () => {
const testCase = prepareTestCase(exampleCartValues.testCases[7]); const testCase = prepareTestCase(exampleCartValues.testCases[7]);
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -149,9 +173,12 @@ describe("cart tests", () => {
const testCase = prepareTestCase(exampleCartValues.testCases[8]); const testCase = prepareTestCase(exampleCartValues.testCases[8]);
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -162,9 +189,12 @@ describe("cart tests", () => {
const testCase = prepareTestCase(exampleCartValues.testCases[9]); const testCase = prepareTestCase(exampleCartValues.testCases[9]);
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts, "ABCD"); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts, "ABCD");
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -175,9 +205,12 @@ describe("cart tests", () => {
const testCase = prepareTestCase(exampleCartValues.testCases[10]); const testCase = prepareTestCase(exampleCartValues.testCases[10]);
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());
@ -188,9 +221,12 @@ describe("cart tests", () => {
const testCase = prepareTestCase(exampleCartValues.testCases[11]); const testCase = prepareTestCase(exampleCartValues.testCases[11]);
const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts); const cartTotal = calcCartData(testCase.user, testCase.cartItems, discounts);
const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscounts]; const allEnvolvedDiscounts: string[] = [...cartTotal.envolvedCartDiscountIds];
cartTotal.items.forEach(cartItem => { cartTotal.items.forEach(cartItem => {
allEnvolvedDiscounts.push(...cartItem.envolvedDiscounts); allEnvolvedDiscounts.push(...cartItem.envolvedDiscountIds);
});
SERVICE_LIST.map(service => service.serviceKey).forEach(service => {
if (cartTotal.discountsByService[service]) allEnvolvedDiscounts.push(cartTotal.discountsByService[service]!._id);
}); });
expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort()); expect(allEnvolvedDiscounts.sort()).toEqual(testCase.expect.envolvedDiscounts.sort());

@ -1114,9 +1114,10 @@ export const exampleCartValues: ExampleCartValues = {
] ]
}, },
"expect": { "expect": {
"price": 12000 * 0.985, "price": 12000 * 0.985 * 0.96,
"envolvedDiscounts": [ "envolvedDiscounts": [
"id4" "id4",
"id31"
] ]
} }
}, },

@ -4,5 +4,5 @@ import { User } from "@root/model/user";
export const testUser: User = { export const testUser: User = {
"ID": "buddy", "ID": "buddy",
"Type": "", "Type": "",
"PurchasesAmount": 0, "PurchasesAmount": 11000,
}; };