39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
import { GlDrawer } from '@gitlab/ui';
|
|
import { mount } from '@vue/test-utils';
|
|
import { getDrawerBodyHeight } from '~/whats_new/utils/get_drawer_body_height';
|
|
|
|
describe('~/whats_new/utils/get_drawer_body_height', () => {
|
|
let drawerWrapper;
|
|
|
|
beforeEach(() => {
|
|
drawerWrapper = mount(GlDrawer, {
|
|
propsData: { open: true },
|
|
});
|
|
});
|
|
|
|
afterEach(() => {
|
|
drawerWrapper.destroy();
|
|
});
|
|
|
|
const setClientHeight = (el, height) => {
|
|
Object.defineProperty(el, 'clientHeight', {
|
|
get() {
|
|
return height;
|
|
},
|
|
});
|
|
};
|
|
const setDrawerDimensions = ({ height, top, headerHeight }) => {
|
|
const drawer = drawerWrapper.element;
|
|
|
|
setClientHeight(drawer, height);
|
|
jest.spyOn(drawer, 'getBoundingClientRect').mockReturnValue({ top });
|
|
setClientHeight(drawer.querySelector('.gl-drawer-header'), headerHeight);
|
|
};
|
|
|
|
it('calculates height of drawer body', () => {
|
|
setDrawerDimensions({ height: 100, top: 5, headerHeight: 40 });
|
|
|
|
expect(getDrawerBodyHeight(drawerWrapper.element)).toBe(55);
|
|
});
|
|
});
|