diff --git a/packages/overlayscrollbars-vue/src/OverlayScrollbarsComponent.vue b/packages/overlayscrollbars-vue/src/OverlayScrollbarsComponent.vue index 25b1800..522f7fd 100644 --- a/packages/overlayscrollbars-vue/src/OverlayScrollbarsComponent.vue +++ b/packages/overlayscrollbars-vue/src/OverlayScrollbarsComponent.vue @@ -1,11 +1,14 @@ diff --git a/packages/overlayscrollbars-vue/src/useOverlayScrollbars.ts b/packages/overlayscrollbars-vue/src/useOverlayScrollbars.ts index e49154b..38a952a 100644 --- a/packages/overlayscrollbars-vue/src/useOverlayScrollbars.ts +++ b/packages/overlayscrollbars-vue/src/useOverlayScrollbars.ts @@ -46,14 +46,10 @@ export const useOverlayScrollbars = ( watch( () => unref(paramsRef.value.options), - () => { - const { - value: { options: rawOptions }, - } = paramsRef; + (options) => { const { value: { instance }, } = variables; - const options = unref(rawOptions); variables.value.options = options; @@ -66,14 +62,10 @@ export const useOverlayScrollbars = ( watch( () => unref(paramsRef.value.events), - () => { - const { - value: { events: rawEvents }, - } = paramsRef; + (events) => { const { value: { instance }, } = variables; - const events = unref(rawEvents); variables.value.events = events; diff --git a/packages/overlayscrollbars-vue/test/OverlayScrollbarsComponent.test.tsx b/packages/overlayscrollbars-vue/test/OverlayScrollbarsComponent.test.tsx index 3b0a03c..1c1d9ee 100644 --- a/packages/overlayscrollbars-vue/test/OverlayScrollbarsComponent.test.tsx +++ b/packages/overlayscrollbars-vue/test/OverlayScrollbarsComponent.test.tsx @@ -1,7 +1,7 @@ import { onMounted, ref, toRefs } from 'vue'; import { describe, test, expect, vitest } from 'vitest'; import { OverlayScrollbars } from 'overlayscrollbars'; -import { render, screen } from '@testing-library/vue'; +import { fireEvent, render, screen } from '@testing-library/vue'; import userEvent from '@testing-library/user-event'; import { OverlayScrollbarsComponent } from '~/overlayscrollbars-vue'; @@ -254,4 +254,26 @@ describe('OverlayScrollbarsComponent', () => { expect(onUpdatedInitial).toHaveBeenCalledTimes(3); expect(onUpdated).toHaveBeenCalledTimes(3); }); + + test('emits', async () => { + const { emitted, unmount, container } = render(OverlayScrollbarsComponent); + + expect(emitted('initialized')).toEqual([[expect.any(Object)]]); + expect(emitted('updated')).toEqual([[expect.any(Object), expect.any(Object)]]); + expect(emitted('scroll')).toBeUndefined(); + expect(emitted('destroyed')).toBeUndefined(); + + container.querySelectorAll('*').forEach((e) => { + fireEvent.scroll(e); + }); + + await Promise.resolve(); + + expect(emitted('scroll')).toEqual([[expect.any(Object), expect.any(UIEvent)]]); + expect(emitted('destroyed')).toBeUndefined(); + + unmount(); + + expect(emitted('destroyed')).toEqual([[expect.any(Object), false]]); + }); });