ConnectedOverlayScrollHandler test updates
parent
50449bc672
commit
37211ca834
|
@ -0,0 +1,33 @@
|
||||||
|
import { expect } from 'vitest';
|
||||||
|
import ConnectedOverlayScrollHandler from '../ConnectedOverlayScrollHandler';
|
||||||
|
import DomHandler from '../DomHandler';
|
||||||
|
|
||||||
|
describe('ConnectedOverlayScrollHandler', () => {
|
||||||
|
it('When bindScrollListener triggered,getScrollableParents should be called', () => {
|
||||||
|
const element = 'element';
|
||||||
|
const listener = 'listener';
|
||||||
|
|
||||||
|
const connectedOverlayScrollHandler = new ConnectedOverlayScrollHandler(element, listener);
|
||||||
|
|
||||||
|
vi.spyOn(DomHandler, 'getScrollableParents').mockReturnValue([{ addEventListener: vi.fn() }, { addEventListener: vi.fn() }]);
|
||||||
|
|
||||||
|
connectedOverlayScrollHandler.bindScrollListener();
|
||||||
|
|
||||||
|
expect(DomHandler.getScrollableParents).toHaveBeenCalledWith(element);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('When destroy method triggered, unbindScrollListener should be called ', () => {
|
||||||
|
const element = 'element';
|
||||||
|
const listener = 'listener';
|
||||||
|
|
||||||
|
const connectedOverlayScrollHandler = new ConnectedOverlayScrollHandler(element, listener);
|
||||||
|
|
||||||
|
vi.spyOn(connectedOverlayScrollHandler, 'unbindScrollListener');
|
||||||
|
|
||||||
|
connectedOverlayScrollHandler.destroy();
|
||||||
|
|
||||||
|
expect(connectedOverlayScrollHandler.unbindScrollListener).toHaveBeenCalled();
|
||||||
|
expect(connectedOverlayScrollHandler.element).toBeNull();
|
||||||
|
expect(connectedOverlayScrollHandler.listener).toBeNull();
|
||||||
|
});
|
||||||
|
});
|
|
@ -11,7 +11,7 @@ beforeEach(() => {
|
||||||
userAgent: 'testUserAgent'
|
userAgent: 'testUserAgent'
|
||||||
};
|
};
|
||||||
|
|
||||||
let testId = 'dummy-testId';
|
const testId = 'dummy-testId';
|
||||||
|
|
||||||
mockHtmlElement = document.createElement('div');
|
mockHtmlElement = document.createElement('div');
|
||||||
mockHtmlElement.setAttribute('id', testId);
|
mockHtmlElement.setAttribute('id', testId);
|
||||||
|
@ -351,10 +351,10 @@ describe('DomHandler', () => {
|
||||||
|
|
||||||
describe('absolutePosition', () => {
|
describe('absolutePosition', () => {
|
||||||
it('When element position bigger than viewport.height', () => {
|
it('When element position bigger than viewport.height', () => {
|
||||||
let element = document.createElement('div');
|
const element = document.createElement('div');
|
||||||
|
|
||||||
document.body.appendChild(element);
|
document.body.appendChild(element);
|
||||||
let target = document.createElement('div');
|
const target = document.createElement('div');
|
||||||
|
|
||||||
target.getBoundingClientRect = () => {
|
target.getBoundingClientRect = () => {
|
||||||
return {
|
return {
|
||||||
|
@ -373,10 +373,10 @@ describe('DomHandler', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('When element position smaller than viewport.height', () => {
|
it('When element position smaller than viewport.height', () => {
|
||||||
let element = document.createElement('div');
|
const element = document.createElement('div');
|
||||||
|
|
||||||
document.body.appendChild(element);
|
document.body.appendChild(element);
|
||||||
let target = document.createElement('div');
|
const target = document.createElement('div');
|
||||||
|
|
||||||
target.getBoundingClientRect = () => {
|
target.getBoundingClientRect = () => {
|
||||||
return {
|
return {
|
||||||
|
@ -397,11 +397,11 @@ describe('DomHandler', () => {
|
||||||
|
|
||||||
describe('relativePosition', () => {
|
describe('relativePosition', () => {
|
||||||
it('When element position bigger than viewport.height', () => {
|
it('When element position bigger than viewport.height', () => {
|
||||||
let element = document.createElement('div');
|
const element = document.createElement('div');
|
||||||
|
|
||||||
document.body.appendChild(element);
|
document.body.appendChild(element);
|
||||||
|
|
||||||
let target = document.createElement('div');
|
const target = document.createElement('div');
|
||||||
|
|
||||||
target.getBoundingClientRect = () => {
|
target.getBoundingClientRect = () => {
|
||||||
return {
|
return {
|
||||||
|
@ -421,11 +421,11 @@ describe('DomHandler', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('When element position smaller than viewport.height', () => {
|
it('When element position smaller than viewport.height', () => {
|
||||||
let element = document.createElement('div');
|
const element = document.createElement('div');
|
||||||
|
|
||||||
document.body.appendChild(element);
|
document.body.appendChild(element);
|
||||||
|
|
||||||
let target = document.createElement('div');
|
const target = document.createElement('div');
|
||||||
|
|
||||||
target.getBoundingClientRect = () => {
|
target.getBoundingClientRect = () => {
|
||||||
return {
|
return {
|
||||||
|
@ -505,6 +505,103 @@ describe('DomHandler', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('fadeIn', () => {
|
||||||
|
it('When element is a html html, elements opactiy should be changed after timeout', () => {
|
||||||
|
const element = document.createElement('div');
|
||||||
|
|
||||||
|
element.style.opacity = 0;
|
||||||
|
DomHandler.fadeIn(element, 50);
|
||||||
|
|
||||||
|
setTimeout(function () {
|
||||||
|
expect(element.style.opacity).toBe('1');
|
||||||
|
}, 100);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('fadeOut', () => {
|
||||||
|
it('When element is a html html, elements opactiy should be changed after timeout', () => {
|
||||||
|
const el = document.createElement('div');
|
||||||
|
|
||||||
|
el.style.opacity = 1;
|
||||||
|
DomHandler.fadeOut(el, 50);
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
expect(el.style.opacity).toBe('0');
|
||||||
|
}, 100);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('getFirstFocusableElement', () => {
|
||||||
|
it('When element has children, function should be return first child', () => {
|
||||||
|
const element = document.createElement('div');
|
||||||
|
const div1 = document.createElement('div');
|
||||||
|
const div2 = document.createElement('div');
|
||||||
|
|
||||||
|
div1.setAttribute('tabindex', '0');
|
||||||
|
div2.setAttribute('tabindex', '1');
|
||||||
|
|
||||||
|
element.appendChild(div1);
|
||||||
|
element.appendChild(div2);
|
||||||
|
|
||||||
|
expect(DomHandler.getFirstFocusableElement(element, 'div')).toBe(div1);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('When element has not children, function should be return null', () => {
|
||||||
|
const element = document.createElement('div');
|
||||||
|
|
||||||
|
expect(DomHandler.getFirstFocusableElement(element, 'div')).toBe(null);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('getLastFocusableElement', () => {
|
||||||
|
it('When element has children, function should be return last child', () => {
|
||||||
|
const element = document.createElement('div');
|
||||||
|
const div1 = document.createElement('div');
|
||||||
|
const div2 = document.createElement('div');
|
||||||
|
|
||||||
|
div1.setAttribute('tabindex', '0');
|
||||||
|
div2.setAttribute('tabindex', '1');
|
||||||
|
|
||||||
|
element.appendChild(div1);
|
||||||
|
element.appendChild(div2);
|
||||||
|
|
||||||
|
expect(DomHandler.getLastFocusableElement(element, 'div')).toBe(div2);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('When element has not children, function should be return null', () => {
|
||||||
|
const element = document.createElement('div');
|
||||||
|
|
||||||
|
expect(DomHandler.getLastFocusableElement(element, 'div')).toBe(null);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('getNextFocusableElement', () => {
|
||||||
|
it('When element has children, function should be return last child', () => {
|
||||||
|
const element = document.createElement('div');
|
||||||
|
const div1 = document.createElement('div');
|
||||||
|
const div2 = document.createElement('div');
|
||||||
|
|
||||||
|
div1.setAttribute('tabindex', '0');
|
||||||
|
div2.setAttribute('tabindex', '1');
|
||||||
|
|
||||||
|
element.appendChild(div1);
|
||||||
|
element.appendChild(div2);
|
||||||
|
|
||||||
|
expect(DomHandler.getNextFocusableElement(element, div1, 'div')).toBe(div2);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('When element has not children, function should be return null', () => {
|
||||||
|
const element = document.createElement('div');
|
||||||
|
const div1 = document.createElement('div');
|
||||||
|
|
||||||
|
div1.setAttribute('tabindex', '-1');
|
||||||
|
|
||||||
|
element.appendChild(div1);
|
||||||
|
|
||||||
|
expect(DomHandler.getNextFocusableElement(element, div1, 'div')).toBe(null);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('getUserAgent', () => {
|
describe('getUserAgent', () => {
|
||||||
it('When element is null or not html element', () => {
|
it('When element is null or not html element', () => {
|
||||||
expect(DomHandler.getUserAgent()).toBe('testUserAgent');
|
expect(DomHandler.getUserAgent()).toBe('testUserAgent');
|
||||||
|
@ -578,6 +675,21 @@ describe('DomHandler', () => {
|
||||||
expect(DomHandler.resolveUserAgent()).toStrictEqual({ browser: '', version: '0' });
|
expect(DomHandler.resolveUserAgent()).toStrictEqual({ browser: '', version: '0' });
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('calculateScrollbarWidth', () => {
|
||||||
|
it('When getSelection is not empty', () => {
|
||||||
|
const scrollDiv = document.createElement('div');
|
||||||
|
|
||||||
|
scrollDiv.className = 'p-scrollbar-measure';
|
||||||
|
document.body.appendChild(scrollDiv);
|
||||||
|
const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
||||||
|
|
||||||
|
document.body.removeChild(scrollDiv);
|
||||||
|
|
||||||
|
expect(DomHandler.calculateScrollbarWidth()).toBe(scrollbarWidth);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('isExist', () => {
|
describe('isExist', () => {
|
||||||
it('When element is null or undefined', () => {
|
it('When element is null or undefined', () => {
|
||||||
expect(DomHandler.isExist(null)).toBeFalsy();
|
expect(DomHandler.isExist(null)).toBeFalsy();
|
||||||
|
@ -628,7 +740,7 @@ describe('DomHandler', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('When style parametre is a string', () => {
|
it('When style parametre is a string', () => {
|
||||||
let style = 'color:red';
|
const style = 'color:red';
|
||||||
|
|
||||||
DomHandler.applyStyle(mockHtmlElement, style);
|
DomHandler.applyStyle(mockHtmlElement, style);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue