old_contents: 
  import {expect} from 'chai';
  import {List, Map} from 'immutable'
  
  describe('immutability', () => {
    //learning test
    describe('is a number', () => {
  
      function increment(currentState) {
        return currentState + 1;
      }
  
      it('is immutable', () => {
        let state = 42;
        let nextNumber = increment(state);
  
        expect(nextNumber).to.equal(43);
        expect(state).to.equal(42);
      });
    });
  
    //List test
    describe('A List', () => {
      function AddMovie(currentState, movie) {
        return currentState.push(movie);
      }
  
      it('is immutable', () => {
        let state = List.of('Transporting', '28 Days Later');
        let nextState = AddMovie(state, 'Sunshine');
  
        expect(nextState).to.equal(List.of(
          'Transporting',
          '28 Days Later',
          'Sunshine'
        ));
  
        expect(state).to.equal(List.of('Transporting', '28 Days Later'));
      });
    });
  
    //Map test
    describe('a tree', () => {
  
      function addMovie(currentState, movie) {
        return currentState.set(
          'movies',
          currentState.get('movies').push(movie)
        );
      }
  
      it('is immutable', () => {
        let state = Map({
          movies: List.of('Trainspotting', '28 Days Later')
        });
        let nextState = addMovie(state, 'Sunshine');
  
        expect(nextState).to.equal(Map({
          movies: List.of(
            'Trainspotting',
            '28 Days Later',
            'Sunshine'
          )
        }));
        expect(state).to.equal(Map({
          movies: List.of(
            'Trainspotting',
            '28 Days Later'
          )
        }));
      });
  
    });
  
  });
  
new_contents: 
  import {expect} from 'chai';
  import {List, Map} from 'immutable'
  
  describe('immutability', () => {
    //learning test
    describe('is a number', () => {
  
      function increment(currentState) {
        return currentState + 1;
      }
  
      it('is immutable', () => {
        let state = 42;
        let nextNumber = increment(state);
  
        expect(nextNumber).to.equal(43);
        expect(state).to.equal(42);
      });
    });
  
    //List test
    describe('A List', () => {
      function AddMovie(currentState, movie) {
        return currentState.push(movie);
      }
  
      it('is immutable', () => {
        let state = List.of('Transporting', '28 Days Later');
        let nextState = AddMovie(state, 'Sunshine');
  
        expect(nextState).to.equal(List.of(
          'Transporting',
          '28 Days Later',
          'Sunshine'
        ));
  
        expect(state).to.equal(List.of('Transporting', '28 Days Later'));
      });
    });
  
    //Map test
    describe('a tree', () => {
  
      function addMovie(currentState, movie) {
        /*return currentState.set(
          'movies',
          currentState.get('movies').push(movie)
        );*/
  
        return currentState.update('movies', movies => movies.push(movie));
      }
  
      it('is immutable', () => {
        let state = Map({
          movies: List.of('Trainspotting', '28 Days Later')
        });
        let nextState = addMovie(state, 'Sunshine');
  
        expect(nextState).to.equal(Map({
          movies: List.of(
            'Trainspotting',
            '28 Days Later',
            'Sunshine'
          )
        }));
        expect(state).to.equal(Map({
          movies: List.of(
            'Trainspotting',
            '28 Days Later'
          )
        }));
      });
  
    });
  
  });
  
subject: update immutibility test of immutablejs