Counter react / redux example

According to egghead video tutorial.

by davidpmcintyre

HTML

<script src="https://npmcdn.com/expect/umd/expect.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/redux/3.3.1/redux.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.7/react-dom.js"></script>
<script src="https://babeljs.io/scripts/babel.js"></script>

<div id="root">
</div>

<script id="jsx-babelify" type="text/babel-jsx">
var mockData = [
        { id: 1, name: 'joe' },
        { id: 2, name: 'sam' },
        { id: 3, name: 'abe' },
      ]; 
var initialState = { list: []};
const reducer = (state = initialState, action) => {
	switch(action.type) { 
    case 'RECEIVE_DATA':   
    	return Object.assign({}, {list: mockData.slice() }); 
    case 'SORT': //this mutates existing state 
    	var list = state.list;
      var sorted = list.sort(function(a, b){
      		if (a.name > b.name){
					return 1;
				} else if (a.name < b.name){
					return -1;
				} else {
					return 0;
				}
      }) 
      if (list[0].name === 'abe'){
      	console.log('original state has been mutated');
      }
      return Object.assign({}, state, { list: sorted }) 
    default:
    	return state;
  }
}

const MyComponent = ({ 
  list, 
  onSort,
  onFetch, 
  onTest}) => (
  	<div>  
      <button onClick={onFetch}>Fetch</button>
      <button onClick={onSort}>Sort</button>
      <button onClick={onTest}>Test</button>
      <ul> 
		    {list.map(item =>
		      <li key={item.id}>{item.name}</li>
		    )}
	  	</ul>  
    </div> 
  );

const {createStore} = Redux; 
const store = createStore(reducer); // bind reducer 

const render = () => {	
	ReactDOM.render(
  	<MyComponent  list={store.getState().list}  
    onFetch={() => store.dispatch({type: 'RECEIVE_DATA'})}
    onSort={() => store.dispatch({type: 'SORT'})}
    onTest={() => {
      var testState = { list: mockData.slice() };
      expect(
        reducer(testState, {type: 'RECEIVE_DATA'...