function isSiteWithProducts( site: null | object ): site is SiteWithProducts { return ( site as SiteWithProducts ).products !== undefined; }
export function getTotal(state = []) { // TO DO return the total of product in the cart let total = 0; if (state.cart.addedIds && state.cart.addedIds.length > 0) { state.cart.addedIds.map((id, index) => { total = total + state.products.byId[id].price * state.cart.quantityById[id]; return total; }); } return total.toString(); }
describe("Catalogue Service", function() { it("should return default products for a location with no additional products", function() { var catalogueService = require('../../lib/Services/CatalogueService'), retrievedProducts = catalogueService.getProducts('-1'); assert.equal(retrievedProducts.categories.length, 1); assert.equal(retrievedProducts.categories[0].title, "News"); }); it("should return an enriched products list for a location with additional products", function() { var catalogueService = require('../../lib/Services/CatalogueService'), retrievedProducts = catalogueService.getProducts('1'); assert.equal(retrievedProducts.categories.length, 2); assert.equal(retrievedProducts.categories[0].title, "News"); assert.equal(retrievedProducts.categories[1].title, "Sports"); assert.equal(retrievedProducts.categories[1].products.length, 2); assert.equal(retrievedProducts.categories[1].products[0].title, 'Arsenal TV'); assert.equal(retrievedProducts.categories[1].products[1].title, 'Chelsea TV'); }); });
// Reducers for corresponding Actions export function getCartProducts(state = []) { // TO DO return products of the car let products = []; if (state.cart.addedIds && state.cart.addedIds.length > 0) { state.cart.addedIds.map((id, index) => { products.push({ ...state.products.byId[id], quantity: state.cart.quantityById[id] }); return products; }); } return products; }