UNPKG

wix-style-react

Version:
81 lines (72 loc) 3.34 kB
import React from 'react'; import { TooltipContainerStrategy } from './TooltipContainerStrategy'; import { mount } from 'enzyme'; import Page from '../Page'; describe('TooltipContainerStrategy', function () { it('should return body when element is null', function () { var tooltipContainerStrategy = new 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(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(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(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(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(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(null, false); var element = void 0; mount(React.createElement( Page, null, React.createElement(Page.Header, { title: 'title' }), React.createElement( Page.Content, null, React.createElement('div', { ref: function ref(_ref) { return element = _ref; } }) ) )); var container = tooltipContainerStrategy.getContainer(element); expect(container.getAttribute('data-class')).toBe('page-scrollable-content'); }); });