optimumqa / cypress-store

Save and share variables between Cypress tests

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Welcome to cypress-store👋

License: MIT

ci

Cypress Javascript

This plugin enables you to store and share values between multiple spec files

Installation

npm install @optimumqa/cypress-store

Usage

Cypress version >= 10

// ./cypress.config.js

import { defineConfig } from 'cypress'

const finalConfig = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      // Setup plugins
      config = import('@optimumqa/cypress-store')(on, config)

      return config
    },
  },
})

Cypress version < 10

// ./cypress/plugins/index.js

module.exports = (on, config) => {
  config = require('@optimumqa/cypress-store')(on, config)

  return config
}

Usage

Below is an example saving a token inside one spec, and re-use it inside another.

You can have infinite stores.

Example of setting a new item into 'MyStoreForUsefulStuff'.

If the store does not exist, it will be automatically created:

// mySpec1.cy.js

cy.task('setItem', {
  storeId: 'MyStoreForUsefulStuff',
  item: {
    name: 'foo',
    value: 'bar',
  },
})

Example of getting an item from a store:

// mySpec2.cy.js

cy.task('getItem', {
  storeId: 'MyStoreForUsefulStuff',
  item: {
    name: 'foo',
  },
}).then((item) => {
  console.log(item) // { name: 'token, value: 'foo' }
  console.log(item.name) // foo
  console.log(item.value) // bar
})

🤝 Contributing

Contributions, issues and feature requests are welcome.
Feel free to check issues page if you want to contribute.

Show your support

Please ⭐️ this repository if this project helped you!

📝 License

This project is MIT licensed.

About

Save and share variables between Cypress tests

License:MIT License


Languages

Language:JavaScript 100.0%