mirror of
https://github.com/reduxjs/redux-devtools.git
synced 2024-11-25 11:03:57 +03:00
922985f9ea
* 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,
|
|
},
|
|
]);
|
|
});
|
|
});
|