UNPKG

1.85 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
6
7var _createReducer = _interopRequireDefault(require("./create-reducer"));
8
9test('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