UNPKG

@benev/slate

Version:
41 lines 1.5 kB
import { expect } from "cynic"; import { ZipAction } from "./action.js"; import { StateTree } from "../state_tree.js"; export default { "actions work": async () => { let memory = 0; const blueprint = ZipAction.blueprint(); const testActions = ZipAction.prepBlueprint((state) => state.test); const tree = new StateTree({ test: { count: 0 } }, () => { memory = tree.state.test.count; }); const subgroup = testActions(action => ({ double: action(test => () => { test.count *= 2; }), })); const counting_specs = blueprint({ ...subgroup, wrapper: { add: state => (n) => { state.test.count += n; }, reset: (_state, setRoot) => () => { setRoot({ test: { count: 0 } }); }, }, }); const counting = ZipAction.actualize(tree, counting_specs); expect(tree.state.test.count).equals(0); expect(memory).equals(0); counting.wrapper.add(1); counting.wrapper.add(2); expect(tree.state.test.count).equals(3); expect(memory).equals(3); counting.double(); expect(tree.state.test.count).equals(6); expect(memory).equals(6); counting.wrapper.reset(); expect(tree.state.test.count).equals(0); expect(memory).equals(0); }, }; //# sourceMappingURL=action.test.js.map