Я новичок в react-redux
.Здесь я пытаюсь написать контрольный пример для редуктора.
, поэтому мой редуктор выглядит так:
const initialState = {
Low: [
{
id: 0,
technologyId: 0,
technology: '',
type: '',
count: '',
allowded: 6,
level: 'EASY'
}
],
Medium: [
{
id: 0,
technologyId: 0,
technology: '',
type: '',
count: '',
allowded: 7,
level: 'MEDIUM'
}
],
High: [
{
id: 0,
technologyId: 0,
technology: '',
type: '',
count: '',
allowded: 7,
level: 'TOUGH'
}
]
}
export default function QuizData(state = initialState, action) {
switch (action.type) {
case QUIZ_DATA:
return {
...state,
Low: action.data,
error: false,
}
case ADD_NEW:
return {
...state,
[action.data.addtype]: action.data.addData,
error: false,
}
case REMOVE_TECH:
return {
...state,
[action.data.removeType]: action.data.newArr,
error: false,
}
default:
return state
}
}
В этом случае, который происходит в add_new
, еще один объект получаетдобавлен в массив, соответствующий type
.
Итак, написанный мной тест выглядит так:
it("should add the new Row in the given type", () => {
const addData = [{
id: 0,
technologyId: 0,
technology: '',
type: 'CODE',
count: '',
allowded: 6,
level: 'EASY'},
{
id: 1,
technologyId: 0,
technology: '',
type: 'NON_CODE',
count: '',
allowded: 6,
level: 'EASY'
}]
const payload = { addtype: "Low", addData: addData};
expect(LowLevelDataReducer(undefined, {
type: ADD_NEW,
data: payload
})).toEqual(
{
...initialState,
[payload.addtype]: payload.addData,
error: false
}
)
})
Здесь initialState
совпадает.
Итак, это правильный способ написать это или неправильно?