| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156 |
2
8
2
3
12
1
1
1
1
1
1
1
1
1
1
4
4
4
1
1
4
1
1
1
4
4
4
4
4
1
1
4
1
1
1
4
4
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
| "use strict";
var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
var _get = function get(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); Iif (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else Eif ("value" in desc && desc.writable) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };
var _prototypeProperties = function (child, staticProps, instanceProps) { Iif (staticProps) Object.defineProperties(child, staticProps); Eif (instanceProps) Object.defineProperties(child.prototype, instanceProps); };
var _inherits = function (subClass, superClass) { Iif (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); Eif (superClass) subClass.__proto__ = superClass; };
var _classCallCheck = function (instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } };
var _Flux = require("../../Flux");
var Flummox = _Flux.Flummox;
var Store = _Flux.Store;
var Actions = _Flux.Actions;
var React = _interopRequire(require("react/addons"));
var TestUtils = React.addons.TestUtils;
var FluxComponent = _interopRequire(require("../FluxComponent"));
describe("FluxComponent", function () {
var TestActions = (function (Actions) {
function TestActions() {
_classCallCheck(this, TestActions);
Eif (Actions != null) {
Actions.apply(this, arguments);
}
}
_inherits(TestActions, Actions);
_prototypeProperties(TestActions, null, {
getSomething: {
value: function getSomething(something) {
return something;
},
writable: true,
configurable: true
}
});
return TestActions;
})(Actions);
var TestStore = (function (Store) {
function TestStore(flux) {
_classCallCheck(this, TestStore);
_get(Object.getPrototypeOf(TestStore.prototype), "constructor", this).call(this);
var testActions = flux.getActions("test");
this.register(testActions.getSomething, this.handleGetSomething);
this.state = {
something: null
};
}
_inherits(TestStore, Store);
_prototypeProperties(TestStore, null, {
handleGetSomething: {
value: function handleGetSomething(something) {
this.setState({ something: something });
},
writable: true,
configurable: true
}
});
return TestStore;
})(Store);
var Flux = (function (Flummox) {
function Flux() {
_classCallCheck(this, Flux);
_get(Object.getPrototypeOf(Flux.prototype), "constructor", this).call(this);
this.createActions("test", TestActions);
this.createStore("test", TestStore, this);
}
_inherits(Flux, Flummox);
return Flux;
})(Flummox);
before(function () {
jsdom();
});
it("gets Flux property from either props or context", function () {
var flux = new Flux();
var contextComponent = undefined,
propsComponent = undefined;
React.withContext({ flux: flux }, function () {
contextComponent = TestUtils.renderIntoDocument(React.createElement(FluxComponent, null));
});
propsComponent = TestUtils.renderIntoDocument(React.createElement(FluxComponent, { flux: flux }));
expect(contextComponent.flux).to.be.an["instanceof"](Flummox);
expect(propsComponent.flux).to.be.an["instanceof"](Flummox);
});
it("passes connectToStore prop to ReactMixin's connectToStores()", function () {
var flux = new Flux();
var actions = flux.getActions("test");
var component = TestUtils.renderIntoDocument(React.createElement(FluxComponent, { flux: flux, connectToStores: "test" }));
actions.getSomething("something good");
expect(component.state.something).to.deep.equal("something good");
actions.getSomething("something else");
expect(component.state.something).to.deep.equal("something else");
});
it("injects children with flux prop", function () {
var flux = new Flux();
var actions = flux.getActions("test");
var tree = TestUtils.renderIntoDocument(React.createElement(
FluxComponent,
{ flux: flux },
React.createElement("div", null)
));
var div = TestUtils.findRenderedDOMComponentWithTag(tree, "div");
expect(div.props.flux).to.equal(flux);
});
it("injects children with props corresponding to component state", function () {
var flux = new Flux();
var actions = flux.getActions("test");
var tree = TestUtils.renderIntoDocument(React.createElement(
FluxComponent,
{ flux: flux, connectToStores: "test" },
React.createElement("div", null)
));
var div = TestUtils.findRenderedDOMComponentWithTag(tree, "div");
actions.getSomething("something good");
expect(div.props.something).to.equal("something good");
actions.getSomething("something else");
expect(div.props.something).to.equal("something else");
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hZGRvbnMvX190ZXN0c19fL1JlYWN0Q29tcG9uZW50LXRlc3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7b0JBRTJCLFlBQVk7O0lBQTNDLE9BQU8sU0FBUCxPQUFPO0lBQUUsS0FBSyxTQUFMLEtBQUs7SUFBRSxPQUFPLFNBQVAsT0FBTztJQUV6QixLQUFLLDJCQUFNLGNBQWM7O0lBQzFCLFNBQVMsR0FBSyxLQUFLLENBQUMsTUFBTSxDQUExQixTQUFTO0lBRVIsYUFBYSwyQkFBTSxrQkFBa0I7O0FBRTVDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsWUFBTTtNQUV4QixXQUFXLGNBQVMsT0FBTzthQUEzQixXQUFXOzRCQUFYLFdBQVc7O1VBQVMsT0FBTztBQUFQLGVBQU87Ozs7Y0FBM0IsV0FBVyxFQUFTLE9BQU87O3lCQUEzQixXQUFXO0FBQ2Ysa0JBQVk7ZUFBQSxzQkFBQyxTQUFTLEVBQUU7QUFDdEIsaUJBQU8sU0FBUyxDQUFDO1NBQ2xCOzs7Ozs7V0FIRyxXQUFXO0tBQVMsT0FBTzs7TUFNM0IsU0FBUyxjQUFTLEtBQUs7QUFDaEIsYUFEUCxTQUFTLENBQ0QsSUFBSTs0QkFEWixTQUFTOztBQUVYLGlDQUZFLFNBQVMsNkNBRUg7O0FBRVIsVUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxQyxVQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7O0FBRWpFLFVBQUksQ0FBQyxLQUFLLEdBQUc7QUFDWCxpQkFBUyxFQUFFLElBQUk7T0FDaEIsQ0FBQztLQUNIOztjQVZHLFNBQVMsRUFBUyxLQUFLOzt5QkFBdkIsU0FBUztBQVliLHdCQUFrQjtlQUFBLDRCQUFDLFNBQVMsRUFBRTtBQUM1QixjQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFULFNBQVMsRUFBRSxDQUFDLENB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LElBQUksQ0FBQyxDQUFDO0dBQ3ZDLENBQUMsQ0FBQzs7QUFFSCxJQUFFLENBQUMsOERBQThELEVBQUUsWUFBTTtBQUN2RSxRQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ3RCLFFBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7O0FBRXRDLFFBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FDckM7QUFBQyxtQkFBYTtRQUFDLElBQUksRUFBRSxJQUFJLEFBQUMsRUFBQyxlQUFlLEVBQUMsTUFBTTtNQUMvQyxnQ0FBTztLQUNPLENBQ2pCLENBQUM7O0FBRUYsUUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzs7QUFFakUsV0FBTyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3ZDLFVBQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN2RCxXQUFPLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDdkMsVUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0dBQ3hELENBQUMsQ0FBQztDQUVKLENBQUMsQ0FBQyIsImZpbGUiOiJzcmMvYWRkb25zL19fdGVzdHNfXy9SZWFjdENvbXBvbmVudC10ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBGbHVtbW94LCBTdG9yZSwgQWN0aW9ucyB9IGZyb20gJy4uLy4uL0ZsdXgnO1xuXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QvYWRkb25zJztcbmxldCB7IFRlc3RVdGlscyB9ID0gUmVhY3QuYWRkb25zO1xuXG5pbXBvcnQgRmx1eENvbXBvbmVudCBmcm9tICcuLi9GbHV4Q29tcG9uZW50JztcblxuZGVzY3JpYmUoJ0ZsdXhDb21wb25lbnQnLCAoKSA9PiB7XG5cbiAgY2xhc3MgVGVzdEFjdGlvbnMgZXh0ZW5kcyBBY3Rpb25zIHtcbiAgICBnZXRTb21ldGhpbmcoc29tZXRoaW5nKSB7XG4gICAgICByZXR1cm4gc29tZXRoaW5nO1xuICAgIH1cbiAgfVxuXG4gIGNsYXNzIFRlc3RTdG9yZSBleHRlbmRzIFN0b3JlIHtcbiAgICBjb25zdHJ1Y3RvcihmbHV4KSB7XG4gICAgICBzdXBlcigpO1xuXG4gICAgICBsZXQgdGVzdEFjdGlvbnMgPSBmbHV4LmdldEFjdGlvbnMoJ3Rlc3QnKTtcbiAgICAgIHRoaXMucmVnaXN0ZXIodGVzdEFjdGlvbnMuZ2V0U29tZXRoaW5nLCB0aGlzLmhhbmRsZUdldFNvbWV0aGluZyk7XG5cbiAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgIHNvbWV0aGluZzogbnVsbFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBoYW5kbGVHZXRTb21ldGhpbmcoc29tZXRoaW5nKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgc29tZXRoaW5nIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNsYXNzIEZsdXggZXh0ZW5kcyBGbHVtbW94IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG5cbiAgICAgIHRoaXMuY3JlYXRlQWN0aW9ucygndGVzdCcsIFRlc3RBY3Rpb25zKTtcbiAgICAgIHRoaXMuY3JlYXRlU3RvcmUoJ3Rlc3QnLCBUZXN0U3RvcmUsIHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIGJlZm9yZSgoKSA9PiB7XG4gICAganNkb20oKTtcbiAgfSk7XG5cbiAgaXQoJ2dldHMgRmx1eCBwcm9wZXJ0eSBmcm9tIGVpdGhlciBwcm9wcyBvciBjb250ZXh0JywgKCkgPT4ge1xuICAgIGxldCBmbHV4ID0gbmV3IEZsdXgoKTtcbiAgICBsZXQgY29udGV4dENvbXBvbmVudCwgcHJvcHNDb21wb25lbnQ7XG5cbiAgICBSZWFjdC53aXRoQ29udGV4dCh7IGZsdXggfSwgKCkgPT4ge1xuICAgICAgY29udGV4dENvbXBvbmVudCA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoPEZsdXhDb21wb25lbnQgLz4pO1xuICAgIH0pO1xuXG4gICAgcHJvcHNDb21wb25lbnQgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgPEZsdXhDb21wb25lbnQgZmx1eD17Zmx1eH0gLz5cbiAgICApO1xuXG4gICAgZXhwZWN0KGNvbnRleHRDb21wb25lbnQuZmx1eCkudG8uYmUuYW4uaW5zdGFuY2VvZihGbHVtbW94KTtcbiAgICBleHBlY3QocHJvcHNDb21wb25lbnQuZmx1eCkudG8uYmUuYW4uaW5zdGFuY2VvZihGbHVtbW94KTtcbiAgfSk7XG5cbiAgaXQoJ3Bhc3NlcyBjb25uZWN0VG9TdG9yZSBwcm9wIHRvIFJlYWN0TWl4aW5cXCdzIGNvbm5lY3RUb1N0b3JlcygpJywgKCkgPT4ge1xuICAgIGxldCBmbHV4ID0gbmV3IEZsdXgoKTtcbiAgICBsZXQgYWN0aW9ucyA9IGZsdXguZ2V0QWN0aW9ucygndGVzdCcpO1xuXG4gICAgbGV0IGNvbXBvbmVudCA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fSBjb25uZWN0VG9TdG9yZXM9XCJ0ZXN0XCIgLz5cbiAgICApO1xuXG4gICAgYWN0aW9ucy5nZXRTb21ldGhpbmcoJ3NvbWV0aGluZyBnb29kJyk7XG4gICAgZXhwZWN0KGNvbXBvbmVudC5zdGF0ZS5zb21ldGhpbmcpLnRvLmRlZXAuZXF1YWwoJ3NvbWV0aGluZyBnb29kJyk7XG4gICAgYWN0aW9ucy5nZXRTb21ldGhpbmcoJ3NvbWV0aGluZyBlbHNlJyk7XG4gICAgZXhwZWN0KGNvbXBvbmVudC5zdGF0ZS5zb21ldGhpbmcpLnRvLmRlZXAuZXF1YWwoJ3NvbWV0aGluZyBlbHNlJyk7XG4gIH0pO1xuXG4gIGl0KCdpbmplY3RzIGNoaWxkcmVuIHdpdGggZmx1eCBwcm9wJywgKCkgPT4ge1xuICAgIGxldCBmbHV4ID0gbmV3IEZsdXgoKTtcbiAgICBsZXQgYWN0aW9ucyA9IGZsdXguZ2V0QWN0aW9ucygndGVzdCcpO1xuXG4gICAgbGV0IHRyZWUgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KFxuICAgICAgPEZsdXhDb21wb25lbnQgZmx1eD17Zmx1eH0+XG4gICAgICAgIDxkaXYgLz5cbiAgICAgIDwvRmx1eENvbXBvbmVudD5cbiAgICApO1xuXG4gICAgbGV0IGRpdiA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKHRyZWUsICdkaXYnKTtcblxuICAgIGV4cGVjdChkaXYucHJvcHMuZmx1eCkudG8uZXF1YWwoZmx1eCk7XG4gIH0pO1xuXG4gIGl0KCdpbmplY3RzIGNoaWxkcmVuIHdpdGggcHJvcHMgY29ycmVzcG9uZGluZyB0byBjb21wb25lbnQgc3RhdGUnLCAoKSA9PiB7XG4gICAgbGV0IGZsdXggPSBuZXcgRmx1eCgpO1xuICAgIGxldCBhY3Rpb25zID0gZmx1eC5nZXRBY3Rpb25zKCd0ZXN0Jyk7XG5cbiAgICBsZXQgdHJlZSA9IFRlc3RVdGlscy5yZW5kZXJJbnRvRG9jdW1lbnQoXG4gICAgICA8Rmx1eENvbXBvbmVudCBmbHV4PXtmbHV4fSBjb25uZWN0VG9TdG9yZXM9XCJ0ZXN0XCI+XG4gICAgICAgIDxkaXYgLz5cbiAgICAgIDwvRmx1eENvbXBvbmVudD5cbiAgICApO1xuXG4gICAgbGV0IGRpdiA9IFRlc3RVdGlscy5maW5kUmVuZGVyZWRET01Db21wb25lbnRXaXRoVGFnKHRyZWUsICdkaXYnKTtcblxuICAgIGFjdGlvbnMuZ2V0U29tZXRoaW5nKCdzb21ldGhpbmcgZ29vZCcpO1xuICAgIGV4cGVjdChkaXYucHJvcHMuc29tZXRoaW5nKS50by5lcXVhbCgnc29tZXRoaW5nIGdvb2QnKTtcbiAgICBhY3Rpb25zLmdldFNvbWV0aGluZygnc29tZXRoaW5nIGVsc2UnKTtcbiAgICBleHBlY3QoZGl2LnByb3BzLnNvbWV0aGluZykudG8uZXF1YWwoJ3NvbWV0aGluZyBlbHNlJyk7XG4gIH0pO1xuXG59KTtcbiJdfQ== |