updux/src/reducer.test.js

33 lines
740 B
JavaScript

import u from 'updeep';
import { Updux } from './Updux';
test('basic reducer', () => {
const dux = new Updux({});
expect(typeof dux.reducer).toBe('function');
expect(dux.reducer({ a: 1 }, { type: 'foo' })).toMatchObject({a:1}); // noop
});
test('basic upreducer', () => {
const dux = new Updux({});
expect(typeof dux.upreducer).toBe('function');
expect(dux.upreducer({type:'foo'})({ a: 1 })).toMatchObject({a:1}); // noop
});
test('reducer with action', () => {
const dux = new Updux({
actions: {
inc: null,
},
mutations: {
inc: () => u({ a: (x) => x + 1 }),
},
});
expect(dux.reducer({ a: 1 }, { type: 'inc' })).toMatchObject({a:2});
});