var productBasket = function (products) { return { total: function () { return products.reduce(function (prev, curr) { return prev + curr; }, 0); } } }; describe('Product basket', function () { describe('#total()', function () { it('returns 0 when basket is empty', function () { expect(productBasket([]).total()).toEqual(0); }); it('returns price of a single product in the basket', function () { expect(productBasket([10]).total()).toEqual(10); }); it('returns price of multiple products in the basket', function () { expect(productBasket([10, 20, 30]).total()).toEqual(60); }); }) });