Testy jednostkoweCa艂kowita warto艣膰 koszykaPowr贸t do lekcji
Funkcja calculateTotalPrice s艂u偶y do obliczania ca艂kowitej warto艣ci produkt贸w dodanych do koszyka. Koszyk reprezentowany jest przez tablic臋 obiekt贸w. Ka偶dy obiekt sk艂ada si臋 z dw贸ch p贸l - price (ceny produktu) oraz quaintity ilo艣ci dodanych produkt贸w. Obie te warto艣ci musz膮 by膰 typu number oraz by膰 wi臋ksze od zera. Funkcja przyjmuje tablic臋 reprezentuj膮c膮 koszyk w argumencie cartItems
Twoim zadaniem jest napisanie nast臋puj膮cych jednostkowych:
- Jeden, kt贸ry sprawdzi czy funkcja poprawnie oblicza ca艂kowit膮 warto艣膰 koszyka.
- Drugi, kt贸ry sprawdzi czy funkcja zg艂asza wyj膮tek, gdy podamy jej w argumencie co艣 innego ni偶 tablic臋.
- Dodatkowe testy, kt贸re sprawdz膮 czy funkcja poprawnie reaguje, gdy przeka偶emy jej niepoprawne obiekty reprezentuj膮ce produkty w koszyku.
Zgodnie z dobrymi praktykami nazywaj testy po angielsku!
W kodzie testu znajdziesz ju偶 wszystkie potrzebne importy. Mo偶esz skupi膰 si臋 wi臋c na pisaniu test贸w przy pomocy Jesta.
Tw贸j kod 馃捇
export function calculateTotalPrice(cartItems) { if (!Array.isArray(cartItems)) { throw new Error("Cart items must be provided as an array"); } let totalPrice = 0; for (const item of cartItems) { if ( typeof item.price !== "number" || typeof item.quantity !== "number" || item.price <= 0 || item.quantity <= 0 ) { throw new Error( "Invalid item format. Each item must have a valid price and quantity." ); } totalPrice += item.price * item.quantity; } return totalPrice; }
Tests