Synpress is e2e testing framework based around Cypress.io & playwright with included MetaMask support. Test your dapps with ease.
npm install @agoric/synpress


#
@agoric/synpress is a testing framework designed to test DApps that use the
Keplr Wallet.
For full commands and their examples,
check here.
``bash`with pnpm
pnpm add --save-dev @agoric/synpresswith npm
npm install --save-dev @agoric/synpresswith yarn
yarn add -D @agoric/synpress
- Keplr
- MetaMask (Currently in alpha)
Project structure:
`text`
project_dir
āāā src
āāā tests
āāā e2e
āāā support.js
āāā specs
āāā example-spec.js
1. Create support.js inside your tests folder (/project_dir/tests/e2e):
`js`
import '@agoric/synpress/support/index';
_^ hint: you can also use this file to extend synpress - add custom commands,
and more.._
2. Add a command to your package.json file
`json`
{
...
"scripts": {
...
"test:e2e": "EXTENSION=keplr synpress run"
}
}
3. (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
`js
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
`json
{
...
"scripts": {
...
"test:e2e": "EXTENSION=keplr synpress run --configFile=test/e2e/synpress.config.js"
}
}
`
4. You're done! š
For an example project, you can take a look at how we've set up tests in this
repository
| 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
@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