const initialState = {
loaded: false,
data: [],
fetchHistory: []
};
export default function messages(state = initialState, action) {
switch (action.type) {
case LOAD_MESSAGES_SUCCESS:
return {...state,
loading: false,
loaded: true,
fetchHistory: [...state.fetchHistory, { lastFetch: action.payload.date, channelName: action.payload.channel }],
data: [...state.data.filter(message => message.channelID !== action.payload.channel), ...action.payload.json]
};
My test code:
expect(messages(undefined,receiveMessages(message4,channel,lastFetch))).toEqual({
loading: false,
loaded: true,
data:[message4], ///must be array
fetchHistory: [{lastFetch:lastFetch,channelName:channel}],
})
I am getting an error message: undefined is not a constructor (evaluating Array.from(arr). I dont get this error in my other tests that are similar, its only when I use receiveMessages() to dispatch LOAD_MESSAGES_SUCCESS. I am assuming bec I have a filter on my state, that I cannot have undefined value. So I substituted undefined with {}, a mocked initialState etc etc but I am still get the same error about undefined is a not a constructor....
Aucun commentaire:
Enregistrer un commentaire