UNPKG

wix-style-react

Version:
92 lines (76 loc) 3.82 kB
'use strict'; 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'); }); });