wix-style-react
Version:
wix-style-react
92 lines (76 loc) • 3.82 kB
JavaScript
;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _TooltipContainerStrategy = require('./TooltipContainerStrategy');
var _enzyme = require('enzyme');
var _Page = require('../Page');
var _Page2 = _interopRequireDefault(_Page);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('TooltipContainerStrategy', function () {
it('should return body when element is null', function () {
var tooltipContainerStrategy = new _TooltipContainerStrategy.TooltipContainerStrategy(null, false);
var container = tooltipContainerStrategy.getContainer(null);
expect(container).toBe(document.body);
});
it('should return body when no other parent is given', function () {
var tooltipContainerStrategy = new _TooltipContainerStrategy.TooltipContainerStrategy(null, false);
var element = document.createElement('div');
var container = tooltipContainerStrategy.getContainer(element);
expect(container).toBe(document.body);
});
it('should return element parent when appendToParent is true', function () {
var tooltipContainerStrategy = new _TooltipContainerStrategy.TooltipContainerStrategy(null, true);
var parent = document.createElement('div');
var element = document.createElement('div');
parent.appendChild(element);
var container = tooltipContainerStrategy.getContainer(element);
expect(container).toBe(parent);
});
it('should return matching ancestor by predicate when appendByPredicate has a value', function () {
var tooltipContainerStrategy = new _TooltipContainerStrategy.TooltipContainerStrategy(null, null, function (el) {
return el.getAttribute('some-attr') === 'some-value';
});
var ancestor = document.createElement('div');
ancestor.setAttribute('some-attr', 'some-value');
var parent = document.createElement('div');
ancestor.appendChild(parent);
var element = document.createElement('div');
parent.appendChild(element);
var container = tooltipContainerStrategy.getContainer(element);
expect(container).toBe(ancestor);
});
it('should return appendTo element when provided and appendToParent is true', function () {
var appendToElement = document.createElement('div');
var tooltipContainerStrategy = new _TooltipContainerStrategy.TooltipContainerStrategy(appendToElement, true);
var parent = document.createElement('div');
var element = document.createElement('div');
parent.appendChild(element);
var container = tooltipContainerStrategy.getContainer(element);
expect(container).toBe(appendToElement);
});
it('should return appendTo element when provided', function () {
var parent = document.createElement('div');
var tooltipContainerStrategy = new _TooltipContainerStrategy.TooltipContainerStrategy(parent, false);
var element = document.createElement('div');
var container = tooltipContainerStrategy.getContainer(element);
expect(container).toBe(parent);
});
it('should return Page scrollable container when element is rendered inside a Page', function () {
var tooltipContainerStrategy = new _TooltipContainerStrategy.TooltipContainerStrategy(null, false);
var element = void 0;
(0, _enzyme.mount)(_react2.default.createElement(
_Page2.default,
null,
_react2.default.createElement(_Page2.default.Header, { title: 'title' }),
_react2.default.createElement(
_Page2.default.Content,
null,
_react2.default.createElement('div', { ref: function ref(_ref) {
return element = _ref;
} })
)
));
var container = tooltipContainerStrategy.getContainer(element);
expect(container.getAttribute('data-class')).toBe('page-scrollable-content');
});
});