UNPKG

@uppy/utils

Version:

Shared utility functions for Uppy Core and plugins maintained by the Uppy team.

46 lines (38 loc) 1.4 kB
import { afterEach, beforeEach, describe, expect, it } from 'vitest' import isTouchDevice from './isTouchDevice.js' describe('isTouchDevice', () => { const RealTouchStart = (globalThis.window as any).ontouchstart const RealMaxTouchPoints = globalThis.navigator.maxTouchPoints beforeEach(() => { // Set ontouchstart property to simulate touch device ;(globalThis.window as any).ontouchstart = null // Set maxTouchPoints to simulate touch device Object.defineProperty(globalThis.navigator, 'maxTouchPoints', { value: 1, configurable: true, }) }) afterEach(() => { // Restore original values if (RealMaxTouchPoints !== undefined) { Object.defineProperty(globalThis.navigator, 'maxTouchPoints', { value: RealMaxTouchPoints, configurable: true, }) } else { delete (globalThis.navigator as any).maxTouchPoints } if (RealTouchStart !== undefined) { ;(globalThis.window as any).ontouchstart = RealTouchStart } else { delete (globalThis.window as any).ontouchstart } }) it("should return true if it's a touch device", () => { expect(isTouchDevice()).toEqual(true) // Remove touch properties to simulate non-touch device delete (globalThis.window as any).ontouchstart delete (globalThis.navigator as any).maxTouchPoints expect(isTouchDevice()).toEqual(false) }) })