unveil
Version:
A React-based Reactive Presentation Framework
66 lines (47 loc) • 5.81 kB
JavaScript
;
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _reactAddonsTestUtils = require('react-addons-test-utils');
var _reactAddonsTestUtils2 = _interopRequireDefault(_reactAddonsTestUtils);
var _rxjs = require('rxjs');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
jest.dontMock('../UIControls');
jest.dontMock('../Navigator');
jest.dontMock('marked');
var createNavigator = require('../Navigator').default;
var UIControls = require('../UIControls').default;
describe('UIControls', function () {
var controller = undefined,
node = undefined,
navigator = undefined,
directions = undefined,
motions = undefined;
directions = [{ next: [0], previous: [0] }, { next: [0], previous: [0] }];
motions = {
left: { level: 0, direction: 'previous' },
up: { level: 1, direction: 'previous' },
right: { level: 0, direction: 'next' },
down: { level: 1, direction: 'next' }
};
beforeEach(function () {
navigator = createNavigator({ stateObservable: new _rxjs.Subject() });
navigator.next = jest.genMockFunction();
controller = _reactAddonsTestUtils2.default.renderIntoDocument(_react2.default.createElement(UIControls, { navigator: navigator }));
node = _reactDom2.default.findDOMNode(controller);
});
var find = function find(name) {
return _reactDom2.default.findDOMNode(controller.refs['button-' + name]);
};
(0, _keys2.default)(motions).forEach(function (motion) {
it('calls navigate(' + motion + ') when pressing ' + motion, function () {
node = find(motion);
_reactAddonsTestUtils2.default.Simulate.click(node);
expect(navigator.next).toBeCalledWith(motion);
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL19fdGVzdHNfXy9VSUNvbnRyb2xzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxLQUFLLFFBQUwsQ0FBYyxlQUFkO0FBQ0EsS0FBSyxRQUFMLENBQWMsY0FBZDtBQUNBLEtBQUssUUFBTCxDQUFjLFFBQWQ7O0FBUUEsSUFBTSxrQkFBa0IsUUFBUSxjQUFSLEVBQXdCLE9BQXhCO0FBQ3hCLElBQU0sYUFBa0IsUUFBUSxlQUFSLEVBQXlCLE9BQXpCOztBQUV4QixTQUFTLFlBQVQsRUFBdUIsWUFBTTtBQUMzQixNQUFJLHNCQUFKO01BQWdCLGdCQUFoQjtNQUFzQixxQkFBdEI7TUFBaUMsc0JBQWpDO01BQTZDLG1CQUE3QyxDQUQyQjs7QUFHM0IsZUFBYSxDQUNYLEVBQUMsTUFBTSxDQUFDLENBQUQsQ0FBTixFQUFXLFVBQVUsQ0FBQyxDQUFELENBQVYsRUFERCxFQUVYLEVBQUMsTUFBTSxDQUFDLENBQUQsQ0FBTixFQUFXLFVBQVUsQ0FBQyxDQUFELENBQVYsRUFGRCxDQUFiLENBSDJCO0FBTzNCLFlBQWE7QUFDWCxVQUFPLEVBQUUsT0FBTyxDQUFQLEVBQVUsV0FBVyxVQUFYLEVBQW5CO0FBQ0EsUUFBTyxFQUFFLE9BQU8sQ0FBUCxFQUFVLFdBQVcsVUFBWCxFQUFuQjtBQUNBLFdBQU8sRUFBRSxPQUFPLENBQVAsRUFBVSxXQUFXLE1BQVgsRUFBbkI7QUFDQSxVQUFPLEVBQUUsT0FBTyxDQUFQLEVBQVUsV0FBVyxNQUFYLEVBQW5CO0dBSkYsQ0FQMkI7O0FBYzNCLGFBQVksWUFBTTtBQUNoQixnQkFBWSxnQkFBZ0IsRUFBRSxpQkFBaUIsbUJBQWpCLEVBQWxCLENBQVosQ0FEZ0I7QUFFaEIsY0FBVSxJQUFWLEdBQWlCLEtBQUssZUFBTCxFQUFqQixDQUZnQjs7QUFJaEIsaUJBQWEsK0JBQVUsa0JBQVYsQ0FDWCw4QkFBQyxVQUFELElBQVksV0FBVyxTQUFYLEVBQVosQ0FEVyxDQUFiLENBSmdCOztBQVFoQixXQUFPLG1CQUFTLFdBQVQsQ0FBcUIsVUFBckIsQ0FBUCxDQVJnQjtHQUFOLENBQVosQ0FkMkI7O0FBeUIzQixNQUFJLE9BQU8sU0FBUCxJQUFPLENBQUMsSUFBRDtXQUNULG1CQUFTLFdBQVQsQ0FBcUIsV0FBVyxJQUFYLGFBQTBCLElBQTFCLENBQXJCO0dBRFMsQ0F6QmdCOztBQTRCM0Isc0JBQVksT0FBWixFQUFxQixPQUFyQixDQUE4QixVQUFDLE1BQUQsRUFBWTtBQUN4QywyQkFBcUIsOEJBQXlCLE1BQTlDLEVBQXdELFlBQU07QUFDNUQsYUFBTyxLQUFLLE1BQUwsQ0FBUCxDQUQ0RDtBQUU1RCxxQ0FBVSxRQUFWLENBQW1CLEtBQW5CLENBQXlCLElBQXpCLEVBRjREO0FBRzVELGFBQU8sVUFBVSxJQUFWLENBQVAsQ0FBdUIsY0FBdkIsQ0FBc0MsTUFBdEMsRUFINEQ7S0FBTixDQUF4RCxDQUR3QztHQUFaLENBQTlCLENBNUIyQjtDQUFOLENBQXZCIiwiZmlsZSI6IlVJQ29udHJvbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJqZXN0LmRvbnRNb2NrKCcuLi9VSUNvbnRyb2xzJyk7XG5qZXN0LmRvbnRNb2NrKCcuLi9OYXZpZ2F0b3InKTtcbmplc3QuZG9udE1vY2soJ21hcmtlZCcpO1xuXG5pbXBvcnQgUmVhY3QgICAgICAgICAgIGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSAgICAgICAgZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBUZXN0VXRpbHMgICAgICAgZnJvbSAncmVhY3QtYWRkb25zLXRlc3QtdXRpbHMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IGNyZWF0ZU5hdmlnYXRvciA9IHJlcXVpcmUoJy4uL05hdmlnYXRvcicpLmRlZmF1bHQ7XG5jb25zdCBVSUNvbnRyb2xzICAgICAgPSByZXF1aXJlKCcuLi9VSUNvbnRyb2xzJykuZGVmYXVsdDtcblxuZGVzY3JpYmUoJ1VJQ29udHJvbHMnLCAoKSA9PiB7XG4gIGxldCBjb250cm9sbGVyLCBub2RlLCBuYXZpZ2F0b3IsIGRpcmVjdGlvbnMsIG1vdGlvbnM7XG5cbiAgZGlyZWN0aW9ucyA9IFtcbiAgICB7bmV4dDogWzBdLCBwcmV2aW91czogWzBdfSxcbiAgICB7bmV4dDogWzBdLCBwcmV2aW91czogWzBdfVxuICBdO1xuICBtb3Rpb25zICAgID0ge1xuICAgIGxlZnQ6ICB7IGxldmVsOiAwLCBkaXJlY3Rpb246ICdwcmV2aW91cycgfSxcbiAgICB1cDogICAgeyBsZXZlbDogMSwgZGlyZWN0aW9uOiAncHJldmlvdXMnIH0sXG4gICAgcmlnaHQ6IHsgbGV2ZWw6IDAsIGRpcmVjdGlvbjogJ25leHQnIH0sXG4gICAgZG93bjogIHsgbGV2ZWw6IDEsIGRpcmVjdGlvbjogJ25leHQnIH1cbiAgfTtcblxuICBiZWZvcmVFYWNoKCAoKSA9PiB7XG4gICAgbmF2aWdhdG9yID0gY3JlYXRlTmF2aWdhdG9yKHsgc3RhdGVPYnNlcnZhYmxlOiBuZXcgU3ViamVjdCgpIH0pO1xuICAgIG5hdmlnYXRvci5uZXh0ID0gamVzdC5nZW5Nb2NrRnVuY3Rpb24oKTtcblxuICAgIGNvbnRyb2xsZXIgPSBUZXN0VXRpbHMucmVuZGVySW50b0RvY3VtZW50KCAoXG4gICAgICA8VUlDb250cm9scyBuYXZpZ2F0b3I9e25hdmlnYXRvcn0gPlxuICAgICAgPC9VSUNvbnRyb2xzPikpO1xuXG4gICAgbm9kZSA9IFJlYWN0RE9NLmZpbmRET01Ob2RlKGNvbnRyb2xsZXIpO1xuICB9KTtcblxuICBsZXQgZmluZCA9IChuYW1lKSA9PlxuICAgIFJlYWN0RE9NLmZpbmRET01Ob2RlKGNvbnRyb2xsZXIucmVmc1tgYnV0dG9uLSR7bmFtZX1gXSk7XG5cbiAgT2JqZWN0LmtleXMobW90aW9ucykuZm9yRWFjaCggKG1vdGlvbikgPT4ge1xuICAgIGl0KGBjYWxscyBuYXZpZ2F0ZSgke21vdGlvbn0pIHdoZW4gcHJlc3NpbmcgJHttb3Rpb259YCwgKCkgPT4ge1xuICAgICAgbm9kZSA9IGZpbmQobW90aW9uKTtcbiAgICAgIFRlc3RVdGlscy5TaW11bGF0ZS5jbGljayhub2RlKTtcbiAgICAgIGV4cGVjdChuYXZpZ2F0b3IubmV4dCkudG9CZUNhbGxlZFdpdGgobW90aW9uKTtcbiAgICB9KTtcbiAgfSk7XG5cblxufSk7XG4iXX0=