Skip to content

Synpress is e2e testing framework based on Cypress.io and playwright with support for metamask.

License

Notifications You must be signed in to change notification settings

agoric-labs/synpress

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm version E2E (docker) Release CI

@agoric/synpress is a testing framework designed to test DApps that use the Keplr Wallet.

For full commands and their examples, check here.

🖥️ Install

# with pnpm
pnpm add --save-dev @agoric/synpress
# with npm
npm install --save-dev @agoric/synpress
# with yarn
yarn add -D @agoric/synpress

👝 Supported wallets

👷 Example setup

Project structure:

project_dir
└── src
└── tests
    └── e2e
        └── support.js
        └── specs
            └── example-spec.js
  1. Create support.js inside your tests folder (/project_dir/tests/e2e):
import '@agoric/synpress/support/index';

^ hint: you can also use this file to extend synpress - add custom commands, and more..

  1. Add a command to your package.json file
{
  ...
  "scripts": {
    ...
    "test:e2e": "EXTENSION=keplr synpress run"
  }
}
  1. (Optional) Create a custom config file. @agoric/synpress aleardy has some configurations set up in this file. To override this and add your custom config, you can create your own config file synpress.config.js in /project_dir/tests/e2e
const baseConfig = require('@agoric/synpress/synpress.config');
const { defineConfig } = require('cypress');

module.exports = defineConfig({
  ...baseConfig,
  e2e: {
    ...baseConfig.e2e,
    baseUrl: 'http://localhost:5173',
  },
});

        use this config by passing the --configFile flag to synpress

{
  ...
  "scripts": {
    ...
    "test:e2e": "EXTENSION=keplr synpress run --configFile=test/e2e/synpress.config.js"
  }
}
  1. You're done! 🎉

For an example project, you can take a look at how we've set up tests in this repository

📃 Environmental variables

Variable Description
EXTENSION (Required) Picks which extension to use during tests. keplr and metamask are the only possible values
SECRET_WORDS Space separated words for the test wallet recovery phrase (mnemonic; 24 words)
PRIVATE_KEY Test wallet private key
SYNDEBUG Set debugging mode to be on
STABLE_MODE Introduce delay between main actions, 300ms by default (eg STABLE_MODE=300ms, STABLE_MODE=true)
SLOW_MODE Introduce delay between every action, 50ms by default (eg SLOW_MODE=true, SLOW_MODE=200ms)
KEPLR_VERSION Keplr version to be installed
SKIP_KEPLR_INSTALL Will skip installation of keplr wallet
SKIP_EXTENSION_SETUP Will skip initial setup of wallet

These is a basic list of environment variables to be used. A more in depth list can be found here

📝 More resources

@agoric/synpress uses Synpress as its base and therefore supports most of its functionality. To learn more about command line options, usage examples, and CI/CD setup, you can use the original README file

About

Synpress is e2e testing framework based on Cypress.io and playwright with support for metamask.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 90.9%
  • TypeScript 4.9%
  • Shell 1.5%
  • Makefile 1.4%
  • CSS 1.1%
  • HTML 0.1%
  • Dockerfile 0.1%