UNPKG

wix-style-react

Version:
41 lines 2.21 kB
import { getAppendToElement, popoverHostElementId } from './getAppendToElement'; import { getScrollParent } from './utils'; describe('getAppendToElement', () => { it('should append popover host element to body [when] given `window`/`viewport` ', () => { expect(getAppendToElement('viewport').parentElement).toBe(document.body); }); it('should return popover host element [when] given `viewport` ', () => { expect(getAppendToElement('viewport')).toBe(document.querySelector(`#${popoverHostElementId}`)); }); it('should return popover host element [when] given `window` ', () => { expect(getAppendToElement('window')).toBe(document.querySelector(`#${popoverHostElementId}`)); }); it('should return first element with overflow style [when] given `scrollParent` ', () => { const node = document.createElement('div'); const parent = document.createElement('div'); parent.appendChild(node); parent.style.overflow = 'auto'; expect(getAppendToElement('scrollParent', node)).toBe(getScrollParent(node)); }); it('should return null [when] given `random`', () => { expect(getAppendToElement('random')).toBe(undefined); }); it('should return matching ancestor by predicate [when] filter function', () => { const predicate = (el) => el.getAttribute('some-attr') === 'some-value'; const element = document.createElement('div'); const parent = document.createElement('div'); parent.setAttribute('some-attr', 'some-value'); parent.appendChild(element); expect(getAppendToElement(predicate, element)).toBe(parent); }); it('should return undefined [when] predicate is not matched', () => { const predicate = (el) => el.getAttribute('some-attr') === 'some-value'; const element = document.createElement('div'); expect(getAppendToElement(predicate, element)).toBe(undefined); }); it('should return given element [when] element is given', () => { const element = document.createElement('div'); expect(getAppendToElement(element)).toBe(element); }); }); //# sourceMappingURL=getAppendToElement.spec.js.map