beerbay-math
Version:
53 lines (48 loc) • 2.28 kB
JavaScript
;
var _coupon = require("./coupon");
var _coupon2 = require("./mock/coupon");
var _cart = require("./mock/cart");
var _countries = require("./mock/countries");
var SPAIN = _countries.MOCK_SHIPPING_COUNTRIES[0];
var ITALY = _countries.MOCK_SHIPPING_COUNTRIES[1];
describe("isCouponActive", function () {
test("inactive coupon", function () {
expect((0, _coupon.isCouponActive)(_coupon2.INACTIVE_COUPON)).toBe(false);
});
test("active coupon", function () {
expect((0, _coupon.isCouponActive)(_coupon2.FREE_SHIPPING_SPAIN_COUPON)).toBe(true);
});
});
describe("isCouponUsable", function () {
test("inactive coupon is not usable", function () {
expect((0, _coupon.isCouponUsable)(_coupon2.INACTIVE_COUPON)).toBe(false);
});
test("Coupon never used is usable", function () {
expect((0, _coupon.isCouponUsable)(_coupon2.USD_10_COUPON, _coupon2.MOCK_USER)).toBe(true);
});
test("Coupon used too many time is not usable", function () {
expect((0, _coupon.isCouponUsable)(_coupon2.ALREADY_USED_BY_USER_COUPON, _coupon2.MOCK_USER)).toBe(false);
});
test("Underused Coupon is usable another time", function () {
expect((0, _coupon.isCouponUsable)(_coupon2.UNDERUSED_COUPON_10_USD, _coupon2.MOCK_USER)).toBe(true);
});
test("Used Coupon is not usable anymore", function () {
expect((0, _coupon.isCouponUsable)(_coupon2.USED_COUPON_10_USD, _coupon2.MOCK_USER)).toBe(false);
});
});
describe("isFreeShipping", function () {
test("It's free shipping in spain", function () {
expect((0, _coupon.isFreeShipping)(_cart.MOCK_CART, SPAIN, _coupon2.FREE_SHIPPING_SPAIN_COUPON, _coupon2.MOCK_USER)).toBe(true);
});
test("It's not free shipping in italy", function () {
expect((0, _coupon.isFreeShipping)(_cart.MOCK_CART, ITALY, _coupon2.FREE_SHIPPING_SPAIN_COUPON, _coupon2.MOCK_USER)).toBe(false);
});
});
describe("getCouponValue", function () {
test("percentage coupon value", function () {
expect((0, _coupon.getCouponValue)(_cart.MOCK_CART, SPAIN, _coupon2.PERCENTAGE_20_COUPON, _coupon2.MOCK_USER)).toBe(14.64);
});
test("flat 10 usd coupon value", function () {
expect((0, _coupon.getCouponValue)(_cart.MOCK_CART, SPAIN, _coupon2.USD_10_COUPON, _coupon2.MOCK_USER)).toBe(10.0);
});
});