cy-mobile-commands
TypeScript icon, indicating that this package has built-in type declarations

0.3.0 • Public • Published

Mobile testing helper for Cypress

book page swipemap pan and zoom

Installing

Step 1, intall this package

npm install --save-dev cy-mobile-commands

Step 2, load it to your Cypress test context

Open cypress/support/index.js and add:

import 'cy-mobile-commands'

Step 3, ...

there is no more steps.

Commands

swipe

Syntax

.swipe(checkpoint1, checkpoint2[, ..., checkpointN])
.swipe(configObject, checkpoint1, checkpoint2[, ..., checkpointN])

The configObject parameter is optional. The available options are:

  • delay: (number of milliseconds = 300) the delta time from the touchstart to touchend.
  • steps: (integer = computed) the number of steps between two checkpoints.
  • draw: (boolean = true) display the swipe path over the page.

You can set two or more steps to make the swipe path as complex as you need.

Where checkpoint# can be a position, or an array of positions. An array of positions perform a multi touch action.

Where position can be:

  • A explicit position defined with number values: [clientX, clientY].
  • A named position: left, right, top, bottom, top-left, top-right, bottom-left, bottom-right or center. (You can replace kebab-case by camelCase)

visitMobile

Syntax

cy.visitMobile(url)
cy.visitMobile(url, options)
cy.visitMobile(options)

It is exactly like the cy.visit command, extended with some env configuration to make mobile friendly libs to believe it is a mobile env.

For now it is necessary for swipe.js and leaflet.js. If you discover a lib that wont work with cy.visit or cy.visitMobile, please, send us a issue.

💡 Tip: If your lib expects a mobile env not yet provided by cy.visitMobile, run cypress open and with the visible browser GUI, open the console (F12) and click in "Toggle device toolbar" icon (or press Ctrl+Shift+M). Then you can run the test again as it was in a mobile chrome.

Usage example

it('page switch', () => {
  cy.visit('book.somewhere')
  cy.get('#my-page1').should('be.visible')
  cy.get('#my-page2').should('not.be.visible')
  cy.get('#my-slidable-book').swipe('right', 'left')
  cy.get('#my-page1').should('not.be.visible')
  cy.get('#my-page2').should('be.visible')
})

it('zoom a map', () => {
  cy.visitMobile('map.somewhere')
  cy.get('#map').swipe({delay: 2000}, [[80,250],[80,350]], [[80,100],[80,500]])
})

For more usage examples, see the our tests.

Package Sidebar

Install

npm i cy-mobile-commands

Weekly Downloads

8,818

Version

0.3.0

License

ISC

Unpacked Size

31.8 kB

Total Files

7

Last publish

Collaborators

  • aurium