// Quick test script for price utilities const { calculateNewPrice, isValidPrice, formatPrice, calculatePercentageChange, isValidPercentage, } = require("./src/utils/price.js"); console.log("Testing Price Utilities...\n"); // Test calculateNewPrice console.log("=== Testing calculateNewPrice ==="); try { console.log("10% increase on $100:", calculateNewPrice(100, 10)); // Should be 110 console.log("20% decrease on $50:", calculateNewPrice(50, -20)); // Should be 40 console.log("5.5% increase on $29.99:", calculateNewPrice(29.99, 5.5)); // Should be 31.64 console.log("0% change on $25:", calculateNewPrice(25, 0)); // Should be 25 console.log("Zero price with 10% increase:", calculateNewPrice(0, 10)); // Should be 0 } catch (error) { console.error("Error:", error.message); } // Test edge cases console.log("\n=== Testing Edge Cases ==="); try { console.log("Negative price test (should throw error):"); calculateNewPrice(-10, 10); } catch (error) { console.log("āœ“ Correctly caught negative price error:", error.message); } try { console.log("Large decrease test (should throw error):"); calculateNewPrice(10, -150); // 150% decrease would make price negative } catch (error) { console.log("āœ“ Correctly caught negative result error:", error.message); } // Test validation functions console.log("\n=== Testing Validation Functions ==="); console.log("isValidPrice(100):", isValidPrice(100)); // true console.log("isValidPrice(-10):", isValidPrice(-10)); // false console.log('isValidPrice("abc"):', isValidPrice("abc")); // false console.log("isValidPrice(0):", isValidPrice(0)); // true console.log("isValidPercentage(10):", isValidPercentage(10)); // true console.log("isValidPercentage(-20):", isValidPercentage(-20)); // true console.log('isValidPercentage("abc"):', isValidPercentage("abc")); // false // Test formatting console.log("\n=== Testing Price Formatting ==="); console.log("formatPrice(29.99):", formatPrice(29.99)); // "29.99" console.log("formatPrice(100):", formatPrice(100)); // "100.00" console.log("formatPrice(0):", formatPrice(0)); // "0.00" // Test percentage change calculation console.log("\n=== Testing Percentage Change Calculation ==="); console.log("Change from $100 to $110:", calculatePercentageChange(100, 110)); // 10 console.log("Change from $50 to $40:", calculatePercentageChange(50, 40)); // -20 console.log( "Change from $29.99 to $31.64:", calculatePercentageChange(29.99, 31.64) ); // ~5.5 console.log("\nāœ“ All tests completed!");