mirror of
https://github.com/robonen/tools.git
synced 2026-03-20 10:54:44 +00:00
test(web/vue): update event listener tests to use globalThis and improve assertions
This commit is contained in:
@@ -192,8 +192,8 @@ describe(useEventListener, () => {
|
|||||||
|
|
||||||
it('use window as default target when event string is passed directly', async () => {
|
it('use window as default target when event string is passed directly', async () => {
|
||||||
const listener = vi.fn();
|
const listener = vi.fn();
|
||||||
const addSpy = vi.spyOn(window, 'addEventListener');
|
const addSpy = vi.spyOn(globalThis, 'addEventListener');
|
||||||
const removeSpy = vi.spyOn(window, 'removeEventListener');
|
const removeSpy = vi.spyOn(globalThis, 'removeEventListener');
|
||||||
|
|
||||||
component = mountWithEventListener(() => {
|
component = mountWithEventListener(() => {
|
||||||
useEventListener('click', listener);
|
useEventListener('click', listener);
|
||||||
@@ -213,7 +213,7 @@ describe(useEventListener, () => {
|
|||||||
|
|
||||||
it('use window as default target when event array is passed directly', async () => {
|
it('use window as default target when event array is passed directly', async () => {
|
||||||
const listener = vi.fn();
|
const listener = vi.fn();
|
||||||
const addSpy = vi.spyOn(window, 'addEventListener');
|
const addSpy = vi.spyOn(globalThis, 'addEventListener');
|
||||||
|
|
||||||
component = mountWithEventListener(() => {
|
component = mountWithEventListener(() => {
|
||||||
useEventListener(['click', 'keydown'], listener);
|
useEventListener(['click', 'keydown'], listener);
|
||||||
|
|||||||
@@ -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 type { Arrayable, VoidFunction } from '@robonen/stdlib';
|
||||||
import { first } from '@robonen/stdlib';
|
|
||||||
import { toValue, watch } from 'vue';
|
import { toValue, watch } from 'vue';
|
||||||
import type { MaybeRefOrGetter } from 'vue';
|
import type { MaybeRefOrGetter } from 'vue';
|
||||||
import { defaultWindow } from '@/types';
|
import { defaultWindow } from '@/types';
|
||||||
|
|||||||
@@ -104,8 +104,8 @@ describe(useTabLeader, () => {
|
|||||||
|
|
||||||
await nextTick();
|
await nextTick();
|
||||||
|
|
||||||
expect(component.vm.isSupported).toBe(true);
|
expect(component.vm.isSupported).toBeTruthy();
|
||||||
expect(component.vm.isLeader).toBe(true);
|
expect(component.vm.isLeader).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('not grant leadership when another tab holds the lock', async () => {
|
it('not grant leadership when another tab holds the lock', async () => {
|
||||||
@@ -125,8 +125,8 @@ describe(useTabLeader, () => {
|
|||||||
|
|
||||||
await nextTick();
|
await nextTick();
|
||||||
|
|
||||||
expect(leader1!.isLeader.value).toBe(true);
|
expect(leader1!.isLeader.value).toBeTruthy();
|
||||||
expect(leader2!.isLeader.value).toBe(false);
|
expect(leader2!.isLeader.value).toBeFalsy();
|
||||||
|
|
||||||
scope1.stop();
|
scope1.stop();
|
||||||
scope2.stop();
|
scope2.stop();
|
||||||
@@ -148,15 +148,15 @@ describe(useTabLeader, () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await nextTick();
|
await nextTick();
|
||||||
expect(leader1!.isLeader.value).toBe(true);
|
expect(leader1!.isLeader.value).toBeTruthy();
|
||||||
expect(leader2!.isLeader.value).toBe(false);
|
expect(leader2!.isLeader.value).toBeFalsy();
|
||||||
|
|
||||||
// Leader 1 releases (e.g., tab closes)
|
// Leader 1 releases (e.g., tab closes)
|
||||||
scope1.stop();
|
scope1.stop();
|
||||||
await nextTick();
|
await nextTick();
|
||||||
|
|
||||||
expect(leader1!.isLeader.value).toBe(false);
|
expect(leader1!.isLeader.value).toBeFalsy();
|
||||||
expect(leader2!.isLeader.value).toBe(true);
|
expect(leader2!.isLeader.value).toBeTruthy();
|
||||||
|
|
||||||
scope2.stop();
|
scope2.stop();
|
||||||
});
|
});
|
||||||
@@ -170,15 +170,15 @@ describe(useTabLeader, () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await nextTick();
|
await nextTick();
|
||||||
expect(leader!.isLeader.value).toBe(true);
|
expect(leader!.isLeader.value).toBeTruthy();
|
||||||
|
|
||||||
leader!.release();
|
leader!.release();
|
||||||
await nextTick();
|
await nextTick();
|
||||||
expect(leader!.isLeader.value).toBe(false);
|
expect(leader!.isLeader.value).toBeFalsy();
|
||||||
|
|
||||||
leader!.acquire();
|
leader!.acquire();
|
||||||
await nextTick();
|
await nextTick();
|
||||||
expect(leader!.isLeader.value).toBe(true);
|
expect(leader!.isLeader.value).toBeTruthy();
|
||||||
|
|
||||||
scope.stop();
|
scope.stop();
|
||||||
});
|
});
|
||||||
@@ -192,12 +192,12 @@ describe(useTabLeader, () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
await nextTick();
|
await nextTick();
|
||||||
expect(leader!.isLeader.value).toBe(false);
|
expect(leader!.isLeader.value).toBeFalsy();
|
||||||
expect(navigator.locks.request).not.toHaveBeenCalled();
|
expect(navigator.locks.request).not.toHaveBeenCalled();
|
||||||
|
|
||||||
leader!.acquire();
|
leader!.acquire();
|
||||||
await nextTick();
|
await nextTick();
|
||||||
expect(leader!.isLeader.value).toBe(true);
|
expect(leader!.isLeader.value).toBeTruthy();
|
||||||
|
|
||||||
scope.stop();
|
scope.stop();
|
||||||
});
|
});
|
||||||
@@ -216,7 +216,7 @@ describe(useTabLeader, () => {
|
|||||||
|
|
||||||
await nextTick();
|
await nextTick();
|
||||||
|
|
||||||
expect(component.vm.isSupported).toBe(false);
|
expect(component.vm.isSupported).toBeFalsy();
|
||||||
expect(component.vm.isLeader).toBe(false);
|
expect(component.vm.isLeader).toBeFalsy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user