Skip to content

Commit

Permalink
[ONL-8262] Added missing props for popover. (#1873)
Browse files Browse the repository at this point in the history
* [ONL-8262] chore: Added missing props for popover.

* 2.7.11
  • Loading branch information
mcibique authored Feb 27, 2024
1 parent 2de00b2 commit cf6ac62
Show file tree
Hide file tree
Showing 6 changed files with 66 additions and 11 deletions.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ebury/chameleon-components",
"version": "2.7.10",
"version": "2.7.11",
"main": "src/main.ts",
"sideEffects": false,
"author": "Ebury Team (http://labs.ebury.rocks/)",
Expand Down
24 changes: 24 additions & 0 deletions src/components/ec-popover/__snapshots__/ec-popover.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,30 @@ exports[`EcPopover component > should merge default options with given additiona
>
</v-dropdown-stub>
`;

exports[`EcPopover component > should pass all props 1`] = `
<v-dropdown-stub
ariaid="ec-popover-1"
arrowoverflow="true"
autohide="false"
autosize="max"
container="body"
data-test="ec-popover"
disabled="true"
distance="8"
overflowpadding="5"
placement="left-end"
popperclass="my-test-class ec-popover ec-popover--modal"
preventoverflow="true"
shift="true"
shown="true"
skidding="12"
triggers="click"
>
</v-dropdown-stub>
`;

Expand Down
40 changes: 32 additions & 8 deletions src/components/ec-popover/ec-popover.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { type ComponentMountingOptions, mount } from '@vue/test-utils';
import { vi } from 'vitest';
import { defineComponent, ref } from 'vue';

import { ZIndexLevel } from '../../enums';
Expand Down Expand Up @@ -55,13 +54,14 @@ describe('EcPopover component', () => {
expect(wrapper.element).toMatchSnapshot('after');
});

it('should pass all events to the 3rd party tooltip component', async () => {
const showSpy = vi.fn();
const wrapper = mountEcPopover({}, {
attrs: { onShow: showSpy },
});
await wrapper.findComponent({ name: 'VDropdown' }).vm.$emit('show');
expect(showSpy).toHaveBeenCalledTimes(1);
it('should pass all events to the 3rd party tooltip component', () => {
const wrapper = mountEcPopover();

const events = ['update:shown', 'show', 'apply-show', 'hide', 'apply-hide', 'auto-hide', 'close-directive', 'resize'];
for (const event of events) {
wrapper.findComponent({ name: 'VDropdown' }).vm.$emit(event);
expect(wrapper.emitted(event)?.length).toBe(1);
}
});

it('should add the z-index level class if the level was given', () => {
Expand Down Expand Up @@ -104,4 +104,28 @@ describe('EcPopover component', () => {

expect(wrapper.element).toMatchSnapshot();
});

it('should pass all props', () => {
type AllPopoverProps = Required<PopoverProps>;

const props: AllPopoverProps = {
autoHide: false,
autoSize: 'max',
delay: 200,
disabled: true,
distance: 8,
level: ZIndexLevel.MODAL,
overflowPadding: 5,
placement: PopoverPlacement.LEFT_END,
popperClass: 'my-test-class',
preventOverflow: true,
shift: true,
shown: true,
skidding: 12,
triggers: [PopoverTrigger.CLICK],
};

const wrapper = mountEcPopover(props);
expect(wrapper.element).toMatchSnapshot();
});
});
5 changes: 5 additions & 0 deletions src/components/ec-popover/ec-popover.vue
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ const props = withDefaults(defineProps<PopoverProps>(), {
autoHide: true,
shift: undefined,
autoSize: undefined,
preventOverflow: undefined,
});
const emit = defineEmits<{
Expand Down Expand Up @@ -76,6 +77,8 @@ const {
autoHide,
shift,
autoSize,
preventOverflow,
overflowPadding,
} = toRefs(props);
const { container: containerInject } = inject(POPOVER_CONTAINER_KEY, { container: ref('body') });
Expand All @@ -90,6 +93,8 @@ function getOptions() {
autoHide: autoHide?.value,
shift: shift?.value,
autoSize: autoSize?.value,
preventOverflow: preventOverflow?.value,
overflowPadding: overflowPadding?.value,
popperClass: `${popperClass.value} ec-popover${level?.value ? ` ec-popover--${level.value}` : ''}`.trim(),
container: containerInject.value,
ariaId: `ec-popover-${id}`,
Expand Down
2 changes: 2 additions & 0 deletions src/components/ec-popover/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,6 @@ export interface PopoverProps {
triggers?: PopoverTrigger[],
shift?: boolean,
autoSize?: boolean | 'min' | 'max',
preventOverflow?: boolean,
overflowPadding?: number,
}

0 comments on commit cf6ac62

Please sign in to comment.