2019-10-19 17:11:30 +00:00
|
|
|
import updux from '.';
|
|
|
|
import u from 'updeep';
|
|
|
|
|
|
|
|
const tracer = chr => u({ tracer: s => (s||'') + chr });
|
|
|
|
|
|
|
|
test( 'mutations, simple', () => {
|
|
|
|
const dux = updux({
|
|
|
|
mutations: {
|
|
|
|
foo: () => tracer('a'),
|
2019-10-20 13:52:50 +00:00
|
|
|
'*': (p,a) => tracer('b'),
|
2019-10-19 17:11:30 +00:00
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
const store = dux.createStore();
|
|
|
|
|
|
|
|
expect(store.getState()).toEqual({ tracer: 'b'});
|
|
|
|
|
|
|
|
store.dispatch.foo();
|
|
|
|
|
|
|
|
expect(store.getState()).toEqual({ tracer: 'ba', });
|
|
|
|
|
|
|
|
store.dispatch({ type: 'bar' });
|
|
|
|
|
|
|
|
expect(store.getState()).toEqual({ tracer: 'bab', });
|
|
|
|
});
|
|
|
|
|
|
|
|
test( 'with subduxes', () => {
|
|
|
|
const dux = updux({
|
|
|
|
mutations: {
|
|
|
|
foo: () => tracer('a'),
|
2019-10-20 13:52:50 +00:00
|
|
|
'*': (dummy,a) => tracer('b'),
|
2019-10-19 17:11:30 +00:00
|
|
|
bar: () => ({bar}) => ({ bar, tracer: bar.tracer })
|
|
|
|
},
|
|
|
|
subduxes: {
|
|
|
|
bar: updux({
|
|
|
|
mutations: {
|
|
|
|
foo: () => tracer('d'),
|
|
|
|
'*': (dummy,a) => { console.log( "got a ", dummy, a ); return tracer('e') },
|
|
|
|
},
|
|
|
|
}),
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
const store = dux.createStore();
|
|
|
|
|
|
|
|
expect(store.getState()).toEqual({
|
|
|
|
tracer: 'b',
|
|
|
|
bar: { tracer: 'e' } });
|
|
|
|
|
|
|
|
store.dispatch.foo();
|
|
|
|
|
|
|
|
expect(store.getState()).toEqual({
|
|
|
|
tracer: 'ba',
|
|
|
|
bar: { tracer: 'ed' } });
|
|
|
|
|
|
|
|
store.dispatch({type: 'bar'});
|
|
|
|
|
|
|
|
expect(store.getState()).toEqual({
|
|
|
|
tracer: 'ede',
|
|
|
|
bar: { tracer: 'ede' } });
|
|
|
|
|
|
|
|
|
|
|
|
});
|