examples/todos/src/reducers/todos.spec.js
import todos from './todos'
describe('todos reducer', () => {
it('should handle initial state', () => {
expect(todos(undefined, {})).toEqual([])
})
it('should handle ADD_TODO', () => {
expect(
todos([], {
type: 'ADD_TODO',
text: 'Run the tests',
id: 0
})
).toEqual([
{
text: 'Run the tests',
completed: false,
id: 0
}
])
expect(
todos(
[
{
text: 'Run the tests',
completed: false,
id: 0
}
],
{
type: 'ADD_TODO',
text: 'Use Redux',
id: 1
}
)
).toEqual([
{
text: 'Run the tests',
completed: false,
id: 0
},
{
text: 'Use Redux',
completed: false,
id: 1
}
])
expect(
todos(
[
{
text: 'Run the tests',
completed: false,
id: 0
},
{
text: 'Use Redux',
completed: false,
id: 1
}
],
{
type: 'ADD_TODO',
text: 'Fix the tests',
id: 2
}
)
).toEqual([
{
text: 'Run the tests',
completed: false,
id: 0
},
{
text: 'Use Redux',
completed: false,
id: 1
},
{
text: 'Fix the tests',
completed: false,
id: 2
}
])
})
it('should handle TOGGLE_TODO', () => {
expect(
todos(
[
{
text: 'Run the tests',
completed: false,
id: 1
},
{
text: 'Use Redux',
completed: false,
id: 0
}
],
{
type: 'TOGGLE_TODO',
id: 1
}
)
).toEqual([
{
text: 'Run the tests',
completed: true,
id: 1
},
{
text: 'Use Redux',
completed: false,
id: 0
}
])
})
})