From 9bece480caec0e7b8b93a22f38bdfe89d99457d3 Mon Sep 17 00:00:00 2001 From: robonen Date: Sun, 15 Feb 2026 05:30:58 +0700 Subject: [PATCH] test(web/vue): update event listener tests to use globalThis and improve assertions --- .../browser/useEventListener/index.test.ts | 6 ++-- .../browser/useEventListener/index.ts | 3 +- .../browser/useTabLeader/index.test.ts | 30 +++++++++---------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/web/vue/src/composables/browser/useEventListener/index.test.ts b/web/vue/src/composables/browser/useEventListener/index.test.ts index 9415dbd..d1adf3f 100644 --- a/web/vue/src/composables/browser/useEventListener/index.test.ts +++ b/web/vue/src/composables/browser/useEventListener/index.test.ts @@ -192,8 +192,8 @@ describe(useEventListener, () => { it('use window as default target when event string is passed directly', async () => { const listener = vi.fn(); - const addSpy = vi.spyOn(window, 'addEventListener'); - const removeSpy = vi.spyOn(window, 'removeEventListener'); + const addSpy = vi.spyOn(globalThis, 'addEventListener'); + const removeSpy = vi.spyOn(globalThis, 'removeEventListener'); component = mountWithEventListener(() => { useEventListener('click', listener); @@ -213,7 +213,7 @@ describe(useEventListener, () => { it('use window as default target when event array is passed directly', async () => { const listener = vi.fn(); - const addSpy = vi.spyOn(window, 'addEventListener'); + const addSpy = vi.spyOn(globalThis, 'addEventListener'); component = mountWithEventListener(() => { useEventListener(['click', 'keydown'], listener); diff --git a/web/vue/src/composables/browser/useEventListener/index.ts b/web/vue/src/composables/browser/useEventListener/index.ts index 9ab4c2f..ecb459c 100644 --- a/web/vue/src/composables/browser/useEventListener/index.ts +++ b/web/vue/src/composables/browser/useEventListener/index.ts @@ -1,6 +1,5 @@ -import { isArray, isObject, isString, noop } from '@robonen/stdlib'; +import { first, isArray, isObject, isString, noop } from '@robonen/stdlib'; import type { Arrayable, VoidFunction } from '@robonen/stdlib'; -import { first } from '@robonen/stdlib'; import { toValue, watch } from 'vue'; import type { MaybeRefOrGetter } from 'vue'; import { defaultWindow } from '@/types'; diff --git a/web/vue/src/composables/browser/useTabLeader/index.test.ts b/web/vue/src/composables/browser/useTabLeader/index.test.ts index 20948e0..f7d6a67 100644 --- a/web/vue/src/composables/browser/useTabLeader/index.test.ts +++ b/web/vue/src/composables/browser/useTabLeader/index.test.ts @@ -104,8 +104,8 @@ describe(useTabLeader, () => { await nextTick(); - expect(component.vm.isSupported).toBe(true); - expect(component.vm.isLeader).toBe(true); + expect(component.vm.isSupported).toBeTruthy(); + expect(component.vm.isLeader).toBeTruthy(); }); it('not grant leadership when another tab holds the lock', async () => { @@ -125,8 +125,8 @@ describe(useTabLeader, () => { await nextTick(); - expect(leader1!.isLeader.value).toBe(true); - expect(leader2!.isLeader.value).toBe(false); + expect(leader1!.isLeader.value).toBeTruthy(); + expect(leader2!.isLeader.value).toBeFalsy(); scope1.stop(); scope2.stop(); @@ -148,15 +148,15 @@ describe(useTabLeader, () => { }); await nextTick(); - expect(leader1!.isLeader.value).toBe(true); - expect(leader2!.isLeader.value).toBe(false); + expect(leader1!.isLeader.value).toBeTruthy(); + expect(leader2!.isLeader.value).toBeFalsy(); // Leader 1 releases (e.g., tab closes) scope1.stop(); await nextTick(); - expect(leader1!.isLeader.value).toBe(false); - expect(leader2!.isLeader.value).toBe(true); + expect(leader1!.isLeader.value).toBeFalsy(); + expect(leader2!.isLeader.value).toBeTruthy(); scope2.stop(); }); @@ -170,15 +170,15 @@ describe(useTabLeader, () => { }); await nextTick(); - expect(leader!.isLeader.value).toBe(true); + expect(leader!.isLeader.value).toBeTruthy(); leader!.release(); await nextTick(); - expect(leader!.isLeader.value).toBe(false); + expect(leader!.isLeader.value).toBeFalsy(); leader!.acquire(); await nextTick(); - expect(leader!.isLeader.value).toBe(true); + expect(leader!.isLeader.value).toBeTruthy(); scope.stop(); }); @@ -192,12 +192,12 @@ describe(useTabLeader, () => { }); await nextTick(); - expect(leader!.isLeader.value).toBe(false); + expect(leader!.isLeader.value).toBeFalsy(); expect(navigator.locks.request).not.toHaveBeenCalled(); leader!.acquire(); await nextTick(); - expect(leader!.isLeader.value).toBe(true); + expect(leader!.isLeader.value).toBeTruthy(); scope.stop(); }); @@ -216,7 +216,7 @@ describe(useTabLeader, () => { await nextTick(); - expect(component.vm.isSupported).toBe(false); - expect(component.vm.isLeader).toBe(false); + expect(component.vm.isSupported).toBeFalsy(); + expect(component.vm.isLeader).toBeFalsy(); }); });