// Reducer function "use strict"; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } } var todos = function todos(state, action) { if (state === undefined) state = []; switch (action.type) { case "ADD_TODO": return [].concat(_toConsumableArray(state), [{ id: action.id, text: action.text, completed: false }]); case "TOGGLE_TODO": return state.map(function (todo) { if (todo.id !== action.id) { return todo; } return _extends({}, todo, { completed: !todo.completed }); }); default: return state; } }; var testAddTodo = function testAddTodo() { var stateBefore = []; var action = { type: "ADD_TODO", id: 0, text: "Learn Redux" }; var stateAfter = [{ id: 0, text: "Learn Redux", completed: false }]; deepFreeze(stateBefore); deepFreeze(action); expect(todos(stateBefore, action)).toEqual(stateAfter); //console.log(todos (stateBefore, action)); }; var testToggleTodo = function testToggleTodo() { var stateBefore = [{ id: 0, text: "Learn Redux", completed: false }, { id: 1, text: "Epic Redux", completed: false }]; var action = { type: "TOGGLE_TODO", id: 1 }; var stateAfter = [{ id: 0, text: "Learn Redux", completed: false }, { id: 1, text: "Epic Redux", completed: true }]; deepFreeze(stateBefore); deepFreeze(action); expect(todos(stateBefore, action)).toEqual(stateAfter); }; testAddTodo(); testToggleTodo(); console.log("Test Passed");