UNPKG

cy-mobile-commands

Version:

Mobile testing helper for Cypress

66 lines (65 loc) 2.69 kB
/// <reference types="cypress" /> declare const SVG_NS = "http://www.w3.org/2000/svg"; declare const COLORS: string[]; declare class InputDeviceCapabilities { firesTouchEvents: boolean; constructor(opts: { firesTouchEvents: boolean; }); } declare namespace Cypress { interface Chainable<Subject> { visitMobile(url: string, options?: Partial<VisitOptions>): Chainable<Window>; visitMobile(options: Partial<VisitOptions> & { url: string; }): Chainable<Window>; swipe(...path: SwipeConfAndPath): Chainable<void>; } } declare type NumPos = [number, number]; declare type FingerPositionName = 'left' | 'right' | 'top' | 'bottom' | 'center' | 'top-left' | 'topLeft' | 'top-right' | 'topRight' | 'bottom-left' | 'bottomLeft' | 'bottom-right' | 'bottomRight'; declare type FingerPosition = NumPos | FingerPositionName; declare type Fingers = FingerPosition | FingerPosition[]; declare type SwipeConfig = { steps?: number; delay: number; draw: boolean; }; declare type SwipeConfAndPath = [SwipeConfig, ...FingerPosition[]] | FingerPosition[]; declare type TouchEventConfig = { fingers: NumPos[]; checkpoint?: boolean; }; declare type EventName = "touchstart" | "touchmove" | "touchend"; declare class SVGCanvas { doc: HTMLDocument; svg: SVGElement; lines: SVGPathElement[]; constructor(doc: HTMLDocument); startLine(finger: number, x: number, y: number): void; extendLine(finger: number, x: number, y: number): void; mkDot(className: string, x: number, y: number, radius: number, color: string, stroke?: number): SVGCircleElement; touchstart(finger: number, x: number, y: number): void; touchmove(finger: number, x: number, y: number, checkpoint: boolean): void; touchend(finger: number, x: number, y: number): void; } declare function getOffset(element: HTMLElement, offset?: { top: number; left: number; }): any; declare function normalizeCheckpointFingers(target: JQuery<HTMLElement>, fingers: Fingers): NumPos[]; declare function notationToPoint(target: JQuery<HTMLElement>, position: FingerPosition): NumPos; declare class Swipe { target: JQuery<HTMLElement>; touchCanvas: SVGCanvas | null; delay: number; stepDelay: number; steps: number; win: Window; path: FingerPosition[]; promiseChain: Promise<void> | undefined; constructor(target: JQuery<HTMLElement>, { steps, delay, draw }: SwipeConfig, path: FingerPosition[]); doIt(): void; updateFingerMove(from: FingerPosition, to: FingerPosition, checkpoint: number): void; dispatchTouchEvent(evName: EventName, { fingers, checkpoint }: TouchEventConfig): void; }