40 lines
780 B
JavaScript
40 lines
780 B
JavaScript
import { test, expect } from 'vitest';
|
|
import u from 'updeep';
|
|
|
|
import { Updux } from '../src/index.js';
|
|
|
|
const todos = new Updux({
|
|
initial: [],
|
|
actions: {
|
|
setNbrTodos: null,
|
|
addTodo: null,
|
|
},
|
|
mutations: {
|
|
addTodo: todo => todos => [ ...todos, todo ],
|
|
},
|
|
reactions: [
|
|
({dispatch}) => todos => dispatch.setNbrTodos(todos.length)
|
|
],
|
|
});
|
|
|
|
const myDux = new Updux({
|
|
initial: {
|
|
nbrTodos: 0
|
|
},
|
|
subduxes: {
|
|
todos,
|
|
},
|
|
mutations: {
|
|
setNbrTodos: nbrTodos => u({ nbrTodos })
|
|
}
|
|
});
|
|
|
|
test( "basic tests", async () => {
|
|
const store = myDux.createStore();
|
|
|
|
store.dispatch.addTodo('one');
|
|
store.dispatch.addTodo('two');
|
|
|
|
expect(store.getState().nbrTodos).toEqual(2);
|
|
});
|