1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
4 |
|
5 | var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
|
6 |
|
7 | var _createReducer = _interopRequireDefault(require("./create-reducer"));
|
8 |
|
9 | test('defaultReducer', function () {
|
10 | expect((0, _createReducer.default)()()).toEqual({});
|
11 | expect((0, _createReducer.default)(undefined, 'initial')()).toBe('initial');
|
12 | expect((0, _createReducer.default)([['a', function () {
|
13 | return function () {
|
14 | return 'A';
|
15 | };
|
16 | }]])(null, {
|
17 | type: 'a'
|
18 | })).toBe('A');
|
19 | expect((0, _createReducer.default)([['a', function () {
|
20 | return function () {
|
21 | return 'A';
|
22 | };
|
23 | }]])(null, {
|
24 | type: 'b'
|
25 | })).toBe(null);
|
26 | expect((0, _createReducer.default)([['a', function () {
|
27 | return function () {
|
28 | return 'A';
|
29 | };
|
30 | }]])(undefined, {
|
31 | type: 'b'
|
32 | })).toEqual({});
|
33 |
|
34 | var reduction1 = function reduction1() {
|
35 | return function (state) {
|
36 | return (0, _objectSpread2.default)({}, state, {
|
37 | bar: 'bar'
|
38 | });
|
39 | };
|
40 | };
|
41 |
|
42 | var case1 = ['a', reduction1];
|
43 | expect((0, _createReducer.default)([case1])({
|
44 | foo: 'foo'
|
45 | }, {
|
46 | type: 'a'
|
47 | })).toEqual({
|
48 | foo: 'foo',
|
49 | bar: 'bar'
|
50 | });
|
51 |
|
52 | var reduction2 = function reduction2(payload) {
|
53 | return function (state) {
|
54 | return (0, _objectSpread2.default)({}, state, {
|
55 | bar: payload
|
56 | });
|
57 | };
|
58 | };
|
59 |
|
60 | var case2 = ['a', reduction2];
|
61 |
|
62 | var errorReduction = function errorReduction() {
|
63 | return function () {
|
64 | throw Error('This should not get executed but it was');
|
65 | };
|
66 | };
|
67 |
|
68 | var errorCase = ['x', errorReduction];
|
69 | expect((0, _createReducer.default)([errorCase, case2])({
|
70 | foo: 'foo'
|
71 | }, {
|
72 | type: 'a',
|
73 | payload: 'payload'
|
74 | })).toEqual({
|
75 | foo: 'foo',
|
76 | bar: 'payload'
|
77 | });
|
78 | }); |
\ | No newline at end of file |