I have this function:
export const setData = (a, b) => (b !== undefined ? { a, b } : { a });
export const processData = arr => {
const obj = {};
arr.forEach(item => obj[item[0]] = val => setData(item[1], val);
return obj;
};
The way I use this function is like this:
const data = [
['setSomething', 'SET_SOMETHING'],
['setAnotherThing', 'SET_ANOTHER_THING']
];
const setters = processData(data);
and then I can call them like setters.setSomething() or setters.setSomething(1234).
How can I test this with Jest? I thought of this:
const mocked = [
['setSomething', 'SET_SOMETHING'],
['setAnotherThing', 'SET_ANOTHER_THING'],
];
const result = processData(mocked);
expect(result).toEqual({
setSomething: () => {}
setAnotherThing: () => {}
});
But it fails saying this:
Expected:
"setSomething": [Function setSomething],
"setAnotherThing": [Function setAnotherThing],
Received:
"setSomething": [Function anonymous],
"setAnotherThing": [Function anonymous],
Any way to test this?