@مکمک واسیلوسکی
در طول روز یک توسعه دهنده. یک شوهر و پدر شب.
قسمت اول را می توانید در اینجا پیدا کنید: چرا آزمایش؟
بیایید به نوشتن تست های Redux خود ادامه دهیم. پرونده ای که ما در حال آزمایش آن هستیم:
const initialState = {
todos: [
{ id: 1, text: 'Do boring stuff', completed: false, color: 'purple' },
{ id: 2, text: 'Write tests!', completed: false, color: 'blue' }
],
filters: {
status: 'All',
colors: []
}
}
function nextTodoId(todos) {
const maxId = todos.reduce((maxId, todo) = Math.max(todo.id, maxId), -1)
return maxId + 1
}
export default function appReducer(state = initialState, action) {
switch (action.type) {
case 'todos/todoAdded':
{
return {
...state,
todos: [
...state.todos,
{
id: nextTodoId(state.todos),
text: action.payload,
completed: false
}
]
}
}
case 'todos/todoToggled':
{
return {
...state,
todos: state.todos.map(todo = {
if (todo.id !== action.payload) {
return todo
}
return {
...todo,
...