import { appendFrame, byId, createDetachedDocument, generateId, getOne, insertHtml, removeElement } from './assets/helpers'; import scrollParent from '../scrollParent'; const scrollerID = generateId('scroller'); const childID = generateId('child'); const style = 'with: 10px; height: 10px;'; describe('"scrollParent', () => { const scrollElm = (doc: Document) => doc.documentElement; describe.each([ [' element', (doc: Document) => doc.documentElement], ['
element', (doc: Document) => doc.body] ])('%s, Returns document.scrollingElement (viewport)', (_, getElm) => { it('In the current document', () => { const doc = document; expect(scrollParent(getElm(doc))).toBe(scrollElm(doc)); }); it('In a Frame document', () => { const frame = appendFrame(); const doc = frame.contentDocument as Document; expect(scrollParent(getElm(doc))).toBe(scrollElm(doc)); frame.remove(); }); it('A DOM Node in a detached Document', () => { const doc = createDetachedDocument(); expect(scrollParent(getElm(doc))).toBe(scrollElm(doc)); }); }); describe.each([ ['Single element', ``], ['"fixed" Element', ``], ['Element inside "overflow: hidden;" element', ` `], ['Element inside "relative" Element', `