mirror of
				https://github.com/reduxjs/redux-devtools.git
				synced 2025-11-04 18:07:27 +03:00 
			
		
		
		
	* chore(deps): update dependency prettier to v3 * Format --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Nathan Bierema <nbierema@gmail.com>
		
			
				
	
	
		
			326 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			326 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import expect from 'expect';
 | 
						|
import todos from '../../reducers/todos';
 | 
						|
import * as types from '../../constants/ActionTypes';
 | 
						|
 | 
						|
describe('todos reducer', () => {
 | 
						|
  it('should handle initial state', () => {
 | 
						|
    expect(todos(undefined, {})).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Use Redux',
 | 
						|
        completed: false,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
  });
 | 
						|
 | 
						|
  it('should handle ADD_TODO', () => {
 | 
						|
    expect(
 | 
						|
      todos([], {
 | 
						|
        type: types.ADD_TODO,
 | 
						|
        text: 'Run the tests',
 | 
						|
      }),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Run the tests',
 | 
						|
        completed: false,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
 | 
						|
    expect(
 | 
						|
      todos(
 | 
						|
        [
 | 
						|
          {
 | 
						|
            text: 'Use Redux',
 | 
						|
            completed: false,
 | 
						|
            id: 0,
 | 
						|
          },
 | 
						|
        ],
 | 
						|
        {
 | 
						|
          type: types.ADD_TODO,
 | 
						|
          text: 'Run the tests',
 | 
						|
        },
 | 
						|
      ),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Run the tests',
 | 
						|
        completed: false,
 | 
						|
        id: 1,
 | 
						|
      },
 | 
						|
      {
 | 
						|
        text: 'Use Redux',
 | 
						|
        completed: false,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
 | 
						|
    expect(
 | 
						|
      todos(
 | 
						|
        [
 | 
						|
          {
 | 
						|
            text: 'Run the tests',
 | 
						|
            completed: false,
 | 
						|
            id: 1,
 | 
						|
          },
 | 
						|
          {
 | 
						|
            text: 'Use Redux',
 | 
						|
            completed: false,
 | 
						|
            id: 0,
 | 
						|
          },
 | 
						|
        ],
 | 
						|
        {
 | 
						|
          type: types.ADD_TODO,
 | 
						|
          text: 'Fix the tests',
 | 
						|
        },
 | 
						|
      ),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Fix the tests',
 | 
						|
        completed: false,
 | 
						|
        id: 2,
 | 
						|
      },
 | 
						|
      {
 | 
						|
        text: 'Run the tests',
 | 
						|
        completed: false,
 | 
						|
        id: 1,
 | 
						|
      },
 | 
						|
      {
 | 
						|
        text: 'Use Redux',
 | 
						|
        completed: false,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
  });
 | 
						|
 | 
						|
  it('should handle DELETE_TODO', () => {
 | 
						|
    expect(
 | 
						|
      todos(
 | 
						|
        [
 | 
						|
          {
 | 
						|
            text: 'Run the tests',
 | 
						|
            completed: false,
 | 
						|
            id: 1,
 | 
						|
          },
 | 
						|
          {
 | 
						|
            text: 'Use Redux',
 | 
						|
            completed: false,
 | 
						|
            id: 0,
 | 
						|
          },
 | 
						|
        ],
 | 
						|
        {
 | 
						|
          type: types.DELETE_TODO,
 | 
						|
          id: 1,
 | 
						|
        },
 | 
						|
      ),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Use Redux',
 | 
						|
        completed: false,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
  });
 | 
						|
 | 
						|
  it('should handle EDIT_TODO', () => {
 | 
						|
    expect(
 | 
						|
      todos(
 | 
						|
        [
 | 
						|
          {
 | 
						|
            text: 'Run the tests',
 | 
						|
            completed: false,
 | 
						|
            id: 1,
 | 
						|
          },
 | 
						|
          {
 | 
						|
            text: 'Use Redux',
 | 
						|
            completed: false,
 | 
						|
            id: 0,
 | 
						|
          },
 | 
						|
        ],
 | 
						|
        {
 | 
						|
          type: types.EDIT_TODO,
 | 
						|
          text: 'Fix the tests',
 | 
						|
          id: 1,
 | 
						|
        },
 | 
						|
      ),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Fix the tests',
 | 
						|
        completed: false,
 | 
						|
        id: 1,
 | 
						|
      },
 | 
						|
      {
 | 
						|
        text: 'Use Redux',
 | 
						|
        completed: false,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
  });
 | 
						|
 | 
						|
  it('should handle COMPLETE_TODO', () => {
 | 
						|
    expect(
 | 
						|
      todos(
 | 
						|
        [
 | 
						|
          {
 | 
						|
            text: 'Run the tests',
 | 
						|
            completed: false,
 | 
						|
            id: 1,
 | 
						|
          },
 | 
						|
          {
 | 
						|
            text: 'Use Redux',
 | 
						|
            completed: false,
 | 
						|
            id: 0,
 | 
						|
          },
 | 
						|
        ],
 | 
						|
        {
 | 
						|
          type: types.COMPLETE_TODO,
 | 
						|
          id: 1,
 | 
						|
        },
 | 
						|
      ),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Run the tests',
 | 
						|
        completed: true,
 | 
						|
        id: 1,
 | 
						|
      },
 | 
						|
      {
 | 
						|
        text: 'Use Redux',
 | 
						|
        completed: false,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
  });
 | 
						|
 | 
						|
  it('should handle COMPLETE_ALL', () => {
 | 
						|
    expect(
 | 
						|
      todos(
 | 
						|
        [
 | 
						|
          {
 | 
						|
            text: 'Run the tests',
 | 
						|
            completed: true,
 | 
						|
            id: 1,
 | 
						|
          },
 | 
						|
          {
 | 
						|
            text: 'Use Redux',
 | 
						|
            completed: false,
 | 
						|
            id: 0,
 | 
						|
          },
 | 
						|
        ],
 | 
						|
        {
 | 
						|
          type: types.COMPLETE_ALL,
 | 
						|
        },
 | 
						|
      ),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Run the tests',
 | 
						|
        completed: true,
 | 
						|
        id: 1,
 | 
						|
      },
 | 
						|
      {
 | 
						|
        text: 'Use Redux',
 | 
						|
        completed: true,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
 | 
						|
    // Unmark if all todos are currently completed
 | 
						|
    expect(
 | 
						|
      todos(
 | 
						|
        [
 | 
						|
          {
 | 
						|
            text: 'Run the tests',
 | 
						|
            completed: true,
 | 
						|
            id: 1,
 | 
						|
          },
 | 
						|
          {
 | 
						|
            text: 'Use Redux',
 | 
						|
            completed: true,
 | 
						|
            id: 0,
 | 
						|
          },
 | 
						|
        ],
 | 
						|
        {
 | 
						|
          type: types.COMPLETE_ALL,
 | 
						|
        },
 | 
						|
      ),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Run the tests',
 | 
						|
        completed: false,
 | 
						|
        id: 1,
 | 
						|
      },
 | 
						|
      {
 | 
						|
        text: 'Use Redux',
 | 
						|
        completed: false,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
  });
 | 
						|
 | 
						|
  it('should handle CLEAR_COMPLETED', () => {
 | 
						|
    expect(
 | 
						|
      todos(
 | 
						|
        [
 | 
						|
          {
 | 
						|
            text: 'Run the tests',
 | 
						|
            completed: true,
 | 
						|
            id: 1,
 | 
						|
          },
 | 
						|
          {
 | 
						|
            text: 'Use Redux',
 | 
						|
            completed: false,
 | 
						|
            id: 0,
 | 
						|
          },
 | 
						|
        ],
 | 
						|
        {
 | 
						|
          type: types.CLEAR_COMPLETED,
 | 
						|
        },
 | 
						|
      ),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Use Redux',
 | 
						|
        completed: false,
 | 
						|
        id: 0,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
  });
 | 
						|
 | 
						|
  it('should not generate duplicate ids after CLEAR_COMPLETED', () => {
 | 
						|
    expect(
 | 
						|
      [
 | 
						|
        {
 | 
						|
          type: types.COMPLETE_TODO,
 | 
						|
          id: 0,
 | 
						|
        },
 | 
						|
        {
 | 
						|
          type: types.CLEAR_COMPLETED,
 | 
						|
        },
 | 
						|
        {
 | 
						|
          type: types.ADD_TODO,
 | 
						|
          text: 'Write more tests',
 | 
						|
        },
 | 
						|
      ].reduce(todos, [
 | 
						|
        {
 | 
						|
          id: 0,
 | 
						|
          completed: false,
 | 
						|
          text: 'Use Redux',
 | 
						|
        },
 | 
						|
        {
 | 
						|
          id: 1,
 | 
						|
          completed: false,
 | 
						|
          text: 'Write tests',
 | 
						|
        },
 | 
						|
      ]),
 | 
						|
    ).toEqual([
 | 
						|
      {
 | 
						|
        text: 'Write more tests',
 | 
						|
        completed: false,
 | 
						|
        id: 2,
 | 
						|
      },
 | 
						|
      {
 | 
						|
        text: 'Write tests',
 | 
						|
        completed: false,
 | 
						|
        id: 1,
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
  });
 | 
						|
});
 |