This commit is contained in:
2026-08-28 17:31:02 +02:00
commit 2b30e8bd39
694 changed files with 49243 additions and 0 deletions
@@ -0,0 +1,22 @@
import { getQtyByVariantIdFromCart } from './getQtyByVariantIdFromCart';
describe('getQtyByVariantIdFromCart', () => {
it('returns an empty map for an empty cart', () => {
expect(getQtyByVariantIdFromCart([])).toEqual(new Map());
});
it('sums quantities for duplicate variant rows', () => {
expect(
getQtyByVariantIdFromCart([
{ variantId: 'variant-1', qty: 2 },
{ variantId: 'variant-1', qty: 3 },
{ variantId: 'variant-2', qty: 1 }
])
).toEqual(
new Map([
['variant-1', 5],
['variant-2', 1]
])
);
});
});
@@ -0,0 +1,11 @@
import type { CookieCart } from '../../modules/storefrontCore/types/cart/CookieCart';
export const getQtyByVariantIdFromCart = (cart: CookieCart): Map<string, number> => {
const map = new Map<string, number>();
for (const line of cart) {
map.set(line.variantId, (map.get(line.variantId) ?? 0) + line.qty);
}
return map;
};
@@ -0,0 +1,16 @@
import { getTotalCartQtyFromCart } from './getTotalCartQtyFromCart';
describe('getTotalCartQtyFromCart', () => {
it('returns zero for an empty cart', () => {
expect(getTotalCartQtyFromCart([])).toBe(0);
});
it('sums line quantities', () => {
expect(
getTotalCartQtyFromCart([
{ variantId: 'variant-1', qty: 2 },
{ variantId: 'variant-2', qty: 3 }
])
).toBe(5);
});
});
@@ -0,0 +1,3 @@
import type { CookieCart } from '../../modules/storefrontCore/types/cart/CookieCart';
export const getTotalCartQtyFromCart = (cart: CookieCart): number => cart.reduce((sum, line) => sum + line.qty, 0);