Socket
Socket
Sign inDemoInstall

@agoric/synpress

Package Overview
Dependencies
33
Maintainers
9
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @agoric/synpress

Synpress is e2e testing framework based around Cypress.io & playwright with included MetaMask support. Test your dapps with ease.


Version published
Weekly downloads
387
decreased by-26.15%
Maintainers
9
Created
Weekly downloads
 

Readme

Source

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

  • Keplr
  • MetaMask (Currently in alpha)

👷 Example setup

Project structure:

project_dir
└── src
└── tests
    └── e2e
        └── .eslintrc.js
        └── support.js
        └── specs
            └── example-spec.js
  1. 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`,
};
  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

VariableDescription
EXTENSION (Required)Picks which extension to use during tests. keplr and metamask are the only possible values
SECRET_WORDSSpace separated words for the test wallet recovery phrase (mnemonic; 24 words)
PRIVATE_KEYTest wallet private key
SYNDEBUGSet debugging mode to be on
STABLE_MODEIntroduce delay between main actions, 300ms by default (eg STABLE_MODE=300ms, STABLE_MODE=true)
SLOW_MODEIntroduce delay between every action, 50ms by default (eg SLOW_MODE=true, SLOW_MODE=200ms)
KEPLR_VERSIONKeplr version to be installed
SKIP_KEPLR_INSTALLWill skip installation of keplr wallet
SKIP_EXTENSION_SETUPWill 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

Keywords

FAQs

Last updated on 01 Apr 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc