E2E testing for dApps using Puppeteer + MetaMask
$ npm install -s @chainsafe/dappeteer
$ yarn add @chainsafe/dappeteer
import puppeteer from 'puppeteer';
import dappeteer from '@chainsafe/dappeteer';
async function main() {
const [metamask, page] = await dappeteer.bootstrap(puppeteer, { metamaskVersion: 'v10.15.0' });
// you can change the network if you want
await metamask.switchNetwork('ropsten');
// you can import a token
await metamask.addToken({
tokenAddress: '0x4f96fe3b7a6cf9725f59d353f723c1bdb64ca6aa',
symbol: 'KAKI',
});
// go to a dapp and do something that prompts MetaMask to confirm a transaction
await page.goto('http://my-dapp.com');
const payButton = await page.$('#pay-with-eth');
await payButton.click();
// ๐
await metamask.confirmTransaction();
}
main();
- All methods can be found on API page
- Instructions to setup dAppeteer with Jest
- Mocha example can be found inside test folder