Package Exports
- @agoric/synpress
- @agoric/synpress/launcher.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@agoric/synpress) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@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
└── .eslintrc.js
└── support.js
└── specs
└── example-spec.js
- Create
.eslintrc.js
inside your tests folder (/project_dir/tests/e2e
):
const path = require('path');
const synpressPath = path.join(
process.cwd(),
'/node_modules/@agoric/synpress',
);
module.exports = {
extends: `${synpressPath}/.eslintrc.js`,
};
- 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..
- Add a command to your package.json file
{
...
"scripts": {
...
"test:e2e": "EXTENSION=keplr synpress run"
}
}
- (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"
}
}
- 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