You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
58 lines
1.5 KiB
package test.utils;
|
|
|
|
import sys.io.File.getContent;
|
|
import haxe.Json.parse;
|
|
import utest.Assert;
|
|
import utils.CartUtils;
|
|
import Common;
|
|
|
|
class TestCartUtils
|
|
{
|
|
static var products:Array<ProductInfo>;
|
|
public function new() {
|
|
var http = new haxe.Http("localhost/js/test/mocks.json?format=json");
|
|
|
|
products = parse(getContent("js/test/mocks.json"));
|
|
}
|
|
|
|
public function testAddToCart()
|
|
{
|
|
var order = {
|
|
products: [{
|
|
product: products[0],
|
|
quantity: 1
|
|
}],
|
|
total: products[0].price
|
|
};
|
|
|
|
var newProduct = products[1];
|
|
|
|
order = CartUtils.addToCart(order, newProduct, 1);
|
|
Assert.equals(order.products.length, 2);
|
|
Assert.equals(order.total, products[0].price + products[1].price);
|
|
order = CartUtils.addToCart(order, newProduct, 3);
|
|
Assert.equals(order.products[1].quantity, 4);
|
|
Assert.equals(order.total, products[0].price + 4 * products[1].price);
|
|
}
|
|
|
|
public function testRemoveFromCart()
|
|
{
|
|
var order = {
|
|
products: [{
|
|
product: products[0],
|
|
quantity: 5
|
|
}, {
|
|
product: products[1],
|
|
quantity: 3
|
|
}],
|
|
total: 5 * products[0].price + 3 * products[1].price
|
|
};
|
|
|
|
order = CartUtils.removeFromCart(order, products[0], 2);
|
|
Assert.equals(order.products[0].quantity, 3);
|
|
Assert.equals(order.total, 3 * products[0].price + 3 * products[1].price);
|
|
order = CartUtils.removeFromCart(order, products[1]);
|
|
Assert.equals(order.products.length, 1);
|
|
Assert.equals(order.total, 3 * products[0].price);
|
|
}
|
|
}
|