react-timelines
Version:
100 lines (83 loc) • 3.58 kB
JavaScript
;
var _react = _interopRequireDefault(require("react"));
var _enzyme = require("enzyme");
var _Header = _interopRequireDefault(require("../Header"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var defaultSticky = {
isSticky: false,
sidebarWidth: 0,
headerHeight: 0
};
var defaultProps = {
timebar: [],
sticky: _objectSpread({}, defaultSticky)
};
describe('<Header />', function () {
it('renders the title for each row', function () {
var timebar = [{
id: '1',
title: 'row-1'
}, {
id: '1',
title: 'row-2'
}];
var props = _objectSpread({}, defaultProps, {
timebar: timebar
});
var wrapper = (0, _enzyme.shallow)(_react.default.createElement(_Header.default, props));
expect(wrapper.find('.rt-timebar-key').first().text()).toBe('row-1');
expect(wrapper.find('.rt-timebar-key').last().text()).toBe('row-2');
});
it('reserves the space taken up by the header when it is sticky', function () {
var sticky = _objectSpread({}, defaultSticky, {
isSticky: true,
headerHeight: 100
});
var props = _objectSpread({}, defaultProps, {
sticky: sticky
});
var wrapper = (0, _enzyme.shallow)(_react.default.createElement(_Header.default, props));
expect(wrapper.prop('style')).toEqual({
paddingTop: 100
});
});
it('does not reserve the space taken up by the header when it is static', function () {
var sticky = _objectSpread({}, defaultSticky, {
isSticky: false,
headerHeight: 100
});
var props = _objectSpread({}, defaultProps, {
sticky: sticky
});
var wrapper = (0, _enzyme.shallow)(_react.default.createElement(_Header.default, props));
expect(wrapper.prop('style')).toEqual({});
});
it('becomes sticky when it receives a sticky prop', function () {
var sticky = _objectSpread({}, defaultSticky, {
isSticky: true,
sidebarWidth: 200
});
var props = _objectSpread({}, defaultProps, {
sticky: sticky
});
var wrapper = (0, _enzyme.shallow)(_react.default.createElement(_Header.default, props));
expect(wrapper.find('.rt-sidebar__header').hasClass('rt-is-sticky')).toBe(true);
expect(wrapper.find('.rt-sidebar__header').prop('style')).toEqual({
width: 200
});
});
it('becomes static when it receives a falsy sticky prop', function () {
var sticky = _objectSpread({}, defaultSticky, {
isSticky: false,
sidebarWidth: 200
});
var props = _objectSpread({}, defaultProps, {
sticky: sticky
});
var wrapper = (0, _enzyme.shallow)(_react.default.createElement(_Header.default, props));
expect(wrapper.find('.rt-sidebar__header').hasClass('rt-is-sticky')).toBe(false);
expect(wrapper.find('.rt-sidebar__header').prop('style')).toEqual({});
});
});