30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
import simpleSelectorFactory from './utils';
|
|
|
|
describe('Redux utilities - creators', () => {
|
|
describe('simpleSelectors', () => {
|
|
const data = { a: 1, b: 2, c: 3 };
|
|
const state = {
|
|
testGroup: data,
|
|
other: 'stuff',
|
|
};
|
|
const transformer = ({ testGroup }) => testGroup;
|
|
|
|
test('given a list of strings, returns a dict w/ a simple selector per string', () => {
|
|
const keys = ['a', 'b'];
|
|
const selectors = simpleSelectorFactory(transformer, keys);
|
|
expect(Object.keys(selectors)).toEqual(['root', ...keys]);
|
|
expect(selectors.root(state)).toEqual(data);
|
|
expect(selectors.a(state)).toEqual(data.a);
|
|
expect(selectors.b(state)).toEqual(data.b);
|
|
});
|
|
test('given an object for keys, returns a dict w/ simple selector per key', () => {
|
|
const selectors = simpleSelectorFactory(transformer, data);
|
|
expect(Object.keys(selectors)).toEqual(['root', ...Object.keys(data)]);
|
|
expect(selectors.root(state)).toEqual(data);
|
|
expect(selectors.a(state)).toEqual(data.a);
|
|
expect(selectors.b(state)).toEqual(data.b);
|
|
expect(selectors.c(state)).toEqual(data.c);
|
|
});
|
|
});
|
|
});
|