UNPKG

8.36 kBJavaScriptView Raw
1"use strict";
2
3var _reduxLeaves3 = require("./reduxLeaves");
4
5var _redux = require("redux");
6
7function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
8
9function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
10
11function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
12
13function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
14
15function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
17describe("API: reduxLeaves(initialState)", function () {
18 describe("GIVEN nested initialState with non-null values for shape { counter, foo, nested: { deep: {}, state: { manageable } } }", function () {
19 var initialState = {
20 counter: 1,
21 foo: ["bar"],
22 nested: {
23 deep: {},
24 state: {
25 manageable: "maybe...?"
26 }
27 }
28 };
29 describe("WHEN [reducer, actions] = reduxLeaves(initialState)", function () {
30 var _reduxLeaves = (0, _reduxLeaves3.reduxLeaves)(initialState),
31 _reduxLeaves2 = _slicedToArray(_reduxLeaves, 2),
32 reducer = _reduxLeaves2[0],
33 actions = _reduxLeaves2[1];
34
35 test("THEN reducer is a function", function () {
36 expect(_typeof(reducer)).toBe("function");
37 });
38 test("AND actions.counter is an object", function () {
39 expect(_typeof(actions.counter)).toBe("object");
40 });
41 test("AND actions.foo is an object", function () {
42 expect(_typeof(actions.foo)).toBe("object");
43 });
44 test("AND actions.nested is an object", function () {
45 expect(_typeof(actions.nested)).toBe("object");
46 });
47 test("AND actions.nested.deep is an object", function () {
48 expect(_typeof(actions.nested.deep)).toBe("object");
49 });
50 test("AND actions.nested.state is an object", function () {
51 expect(_typeof(actions.nested.state)).toBe("object");
52 });
53 test("AND actions.nested.state.manageable is an object", function () {
54 expect(_typeof(actions.nested.state.manageable)).toBe("object");
55 });
56 describe("AND store = createStore(reducer)", function () {
57 var store;
58 beforeEach(function () {
59 store = (0, _redux.createStore)(reducer);
60 });
61 test("THEN store is initialised with state = initialState", function () {
62 expect(store.getState()).toEqual(initialState);
63 });
64 });
65 });
66 });
67});
68//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWR1eExlYXZlcy50ZXN0LnRzIl0sIm5hbWVzIjpbImRlc2NyaWJlIiwiaW5pdGlhbFN0YXRlIiwiY291bnRlciIsImZvbyIsIm5lc3RlZCIsImRlZXAiLCJzdGF0ZSIsIm1hbmFnZWFibGUiLCJyZWR1Y2VyIiwiYWN0aW9ucyIsInRlc3QiLCJleHBlY3QiLCJ0b0JlIiwic3RvcmUiLCJiZWZvcmVFYWNoIiwiZ2V0U3RhdGUiLCJ0b0VxdWFsIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQUEsUUFBUSxDQUFDLGdDQUFELEVBQW1DLFlBQU07QUFFL0NBLEVBQUFBLFFBQVEsQ0FBQyx3SEFBRCxFQUEySCxZQUFNO0FBQ3ZJLFFBQU1DLFlBQVksR0FBRztBQUNuQkMsTUFBQUEsT0FBTyxFQUFFLENBRFU7QUFFbkJDLE1BQUFBLEdBQUcsRUFBRSxDQUFDLEtBQUQsQ0FGYztBQUduQkMsTUFBQUEsTUFBTSxFQUFFO0FBQ05DLFFBQUFBLElBQUksRUFBRSxFQURBO0FBRU5DLFFBQUFBLEtBQUssRUFBRTtBQUNMQyxVQUFBQSxVQUFVLEVBQUU7QUFEUDtBQUZEO0FBSFcsS0FBckI7QUFXQVAsSUFBQUEsUUFBUSxDQUFDLHFEQUFELEVBQXdELFlBQU07QUFBQSx5QkFDekMsK0JBQVlDLFlBQVosQ0FEeUM7QUFBQTtBQUFBLFVBQzdETyxPQUQ2RDtBQUFBLFVBQ3BEQyxPQURvRDs7QUFHcEVDLE1BQUFBLElBQUksQ0FBQyw0QkFBRCxFQUErQixZQUFNO0FBQ3ZDQyxRQUFBQSxNQUFNLFNBQVFILE9BQVIsRUFBTixDQUF1QkksSUFBdkIsQ0FBNEIsVUFBNUI7QUFDRCxPQUZHLENBQUo7QUFJQUYsTUFBQUEsSUFBSSxDQUFDLGtDQUFELEVBQXFDLFlBQU07QUFDN0NDLFFBQUFBLE1BQU0sU0FBUUYsT0FBTyxDQUFDUCxPQUFoQixFQUFOLENBQStCVSxJQUEvQixDQUFvQyxRQUFwQztBQUNELE9BRkcsQ0FBSjtBQUlBRixNQUFBQSxJQUFJLENBQUMsOEJBQUQsRUFBaUMsWUFBTTtBQUN6Q0MsUUFBQUEsTUFBTSxTQUFRRixPQUFPLENBQUNOLEdBQWhCLEVBQU4sQ0FBMkJTLElBQTNCLENBQWdDLFFBQWhDO0FBQ0QsT0FGRyxDQUFKO0FBSUFGLE1BQUFBLElBQUksQ0FBQyxpQ0FBRCxFQUFvQyxZQUFNO0FBQzVDQyxRQUFBQSxNQUFNLFNBQVFGLE9BQU8sQ0FBQ0wsTUFBaEIsRUFBTixDQUE4QlEsSUFBOUIsQ0FBbUMsUUFBbkM7QUFDRCxPQUZHLENBQUo7QUFJQUYsTUFBQUEsSUFBSSxDQUFDLHNDQUFELEVBQXlDLFlBQU07QUFDakRDLFFBQUFBLE1BQU0sU0FBUUYsT0FBTyxDQUFDTCxNQUFSLENBQWVDLElBQXZCLEVBQU4sQ0FBbUNPLElBQW5DLENBQXdDLFFBQXhDO0FBQ0QsT0FGRyxDQUFKO0FBSUFGLE1BQUFBLElBQUksQ0FBQyx1Q0FBRCxFQUEwQyxZQUFNO0FBQ2xEQyxRQUFBQSxNQUFNLFNBQVFGLE9BQU8sQ0FBQ0wsTUFBUixDQUFlRSxLQUF2QixFQUFOLENBQW9DTSxJQUFwQyxDQUF5QyxRQUF6QztBQUNELE9BRkcsQ0FBSjtBQUlBRixNQUFBQSxJQUFJLENBQUMsa0RBQUQsRUFBcUQsWUFBTTtBQUM3REMsUUFBQUEsTUFBTSxTQUFRRixPQUFPLENBQUNMLE1BQVIsQ0FBZUUsS0FBZixDQUFxQkMsVUFBN0IsRUFBTixDQUErQ0ssSUFBL0MsQ0FBb0QsUUFBcEQ7QUFDRCxPQUZHLENBQUo7QUFJQVosTUFBQUEsUUFBUSxDQUFDLGtDQUFELEVBQXFDLFlBQU07QUFDakQsWUFBSWEsS0FBSjtBQUNBQyxRQUFBQSxVQUFVLENBQUMsWUFBTTtBQUNmRCxVQUFBQSxLQUFLLEdBQUcsd0JBQVlMLE9BQVosQ0FBUjtBQUNELFNBRlMsQ0FBVjtBQUlBRSxRQUFBQSxJQUFJLENBQUMscURBQUQsRUFBd0QsWUFBTTtBQUNoRUMsVUFBQUEsTUFBTSxDQUFDRSxLQUFLLENBQUNFLFFBQU4sRUFBRCxDQUFOLENBQXlCQyxPQUF6QixDQUFpQ2YsWUFBakM7QUFDRCxTQUZHLENBQUo7QUFHRCxPQVRPLENBQVI7QUFVRCxLQXpDTyxDQUFSO0FBMENELEdBdERPLENBQVI7QUF1REQsQ0F6RE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZHV4TGVhdmVzIH0gZnJvbSAnLi9yZWR1eExlYXZlcyc7XG5pbXBvcnQgeyBjcmVhdGVTdG9yZSwgU3RvcmUgfSBmcm9tIFwicmVkdXhcIjtcblxuZGVzY3JpYmUoXCJBUEk6IHJlZHV4TGVhdmVzKGluaXRpYWxTdGF0ZSlcIiwgKCkgPT4ge1xuXG4gIGRlc2NyaWJlKFwiR0lWRU4gbmVzdGVkIGluaXRpYWxTdGF0ZSB3aXRoIG5vbi1udWxsIHZhbHVlcyBmb3Igc2hhcGUgeyBjb3VudGVyLCBmb28sIG5lc3RlZDogeyBkZWVwOiB7fSwgc3RhdGU6IHsgbWFuYWdlYWJsZSB9IH0gfVwiLCAoKSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgY291bnRlcjogMSxcbiAgICAgIGZvbzogW1wiYmFyXCJdLFxuICAgICAgbmVzdGVkOiB7XG4gICAgICAgIGRlZXA6IHt9LFxuICAgICAgICBzdGF0ZToge1xuICAgICAgICAgIG1hbmFnZWFibGU6IFwibWF5YmUuLi4/XCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRlc2NyaWJlKFwiV0hFTiBbcmVkdWNlciwgYWN0aW9uc10gPSByZWR1eExlYXZlcyhpbml0aWFsU3RhdGUpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IFtyZWR1Y2VyLCBhY3Rpb25zXSA9IHJlZHV4TGVhdmVzKGluaXRpYWxTdGF0ZSlcblxuICAgICAgdGVzdChcIlRIRU4gcmVkdWNlciBpcyBhIGZ1bmN0aW9uXCIsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHR5cGVvZiByZWR1Y2VyKS50b0JlKFwiZnVuY3Rpb25cIilcbiAgICAgIH0pXG5cbiAgICAgIHRlc3QoXCJBTkQgYWN0aW9ucy5jb3VudGVyIGlzIGFuIG9iamVjdFwiLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdCh0eXBlb2YgYWN0aW9ucy5jb3VudGVyKS50b0JlKFwib2JqZWN0XCIpXG4gICAgICB9KVxuXG4gICAgICB0ZXN0KFwiQU5EIGFjdGlvbnMuZm9vIGlzIGFuIG9iamVjdFwiLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdCh0eXBlb2YgYWN0aW9ucy5mb28pLnRvQmUoXCJvYmplY3RcIilcbiAgICAgIH0pXG5cbiAgICAgIHRlc3QoXCJBTkQgYWN0aW9ucy5uZXN0ZWQgaXMgYW4gb2JqZWN0XCIsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHR5cGVvZiBhY3Rpb25zLm5lc3RlZCkudG9CZShcIm9iamVjdFwiKVxuICAgICAgfSlcblxuICAgICAgdGVzdChcIkFORCBhY3Rpb25zLm5lc3RlZC5kZWVwIGlzIGFuIG9iamVjdFwiLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdCh0eXBlb2YgYWN0aW9ucy5uZXN0ZWQuZGVlcCkudG9CZShcIm9iamVjdFwiKVxuICAgICAgfSlcblxuICAgICAgdGVzdChcIkFORCBhY3Rpb25zLm5lc3RlZC5zdGF0ZSBpcyBhbiBvYmplY3RcIiwgKCkgPT4ge1xuICAgICAgICBleHBlY3QodHlwZW9mIGFjdGlvbnMubmVzdGVkLnN0YXRlKS50b0JlKFwib2JqZWN0XCIpXG4gICAgICB9KVxuXG4gICAgICB0ZXN0KFwiQU5EIGFjdGlvbnMubmVzdGVkLnN0YXRlLm1hbmFnZWFibGUgaXMgYW4gb2JqZWN0XCIsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KHR5cGVvZiBhY3Rpb25zLm5lc3RlZC5zdGF0ZS5tYW5hZ2VhYmxlKS50b0JlKFwib2JqZWN0XCIpXG4gICAgICB9KVxuXG4gICAgICBkZXNjcmliZShcIkFORCBzdG9yZSA9IGNyZWF0ZVN0b3JlKHJlZHVjZXIpXCIsICgpID0+IHtcbiAgICAgICAgbGV0IHN0b3JlOiBTdG9yZVxuICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgICAgICBzdG9yZSA9IGNyZWF0ZVN0b3JlKHJlZHVjZXIpXG4gICAgICAgIH0pXG5cbiAgICAgICAgdGVzdChcIlRIRU4gc3RvcmUgaXMgaW5pdGlhbGlzZWQgd2l0aCBzdGF0ZSA9IGluaXRpYWxTdGF0ZVwiLCAoKSA9PiB7XG4gICAgICAgICAgZXhwZWN0KHN0b3JlLmdldFN0YXRlKCkpLnRvRXF1YWwoaW5pdGlhbFN0YXRlKVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICB9KVxuICB9KVxufSkiXX0=
\No newline at end of file