npm package: @synthetixio/synpress
Description: [![npm version](https://badge.fury.io/js/%40synthetixio%2Fsynpress.svg)](https://badge.fury.io/js/%40synthetixio%2Fsynpress) [![Discord](https://img.shields.io/discord/1103781993394733136.svg?color=768AD4&label=discord&logo=https%3A%2F%2Fdiscordapp.com%2F
Latest version: 4.1.2

# Synpress

[![npm version](https://badge.fury.io/js/%40synthetixio%2Fsynpress.svg)](https://badge.fury.io/js/%40synthetixio%2Fsynpress)
[![Discord](https://img.shields.io/discord/1103781993394733136.svg?color=768AD4&label=discord&logo=https%3A%2F%2Fdiscordapp.com%2Fassets%2F8c9701b98ad4372b58f13fd9f65f966e.svg)](https://discord.gg/XhZKSRGtWc)
[![Twitter Follow](https://img.shields.io/twitter/follow/synpress_.svg?label=synpress&style=social)](https://twitter.com/synpress_)

![Synpress CI](https://github.com/Synthetixio/synpress/workflows/Synpress%20CI/badge.svg?branch=master)
[![CodeQL](https://github.com/Synthetixio/synpress/actions/workflows/codeql.yml/badge.svg?branch=master)](https://github.com/Synthetixio/synpress/actions/workflows/codeql.yml)
[![synpress](https://img.shields.io/endpoint?url=https://dashboard.cypress.io/badge/count/ohpeaz/master&style=flat&logo=cypress)](https://dashboard.cypress.io/projects/ohpeaz/runs)

> **We're Hiring 🎉** — Think you have what it takes? See open positions [here](https://mirror.xyz/synpress.eth/FXhd5-7e7wBmYYtfmqkF0h7FhDBRUGuGF6j-D7jPpvM).

<p align="center">
  <img src="https://raw.githubusercontent.com/Synthetixio/synpress/dev/images/synpress-logo.png" height="200" alt="Synpress Logo" />
  <p align="center">
    Synpress is a powerful and developer-friendly E2E testing library for Web3 dapps, built on top of <a href="https://www.cypress.io/">Cypress</a> and <a href="https://playwright.dev/">Playwright</a>.  It simplifies testing interactions with wallets like <a href="https://metamask.io/">MetaMask</a> and other blockchain-specific operations.
  </p>
</p>

<p align="center">
    <i>Sponsored by: </i> <br/> <br/>
    <a href="https://github.com/ethereum-optimism"><img src="https://raw.githubusercontent.com/Synthetixio/synpress/dev/images/optimism-logo.png" height="100" alt="Optimism Logo" /></a>
</p>

## ✨ Features

<p align="center">
  <img src="https://raw.githubusercontent.com/Synthetixio/synpress/dev/images/demo.gif" title="Synpress Demo" alt="Synpress Demo" style="margin-bottom: 10px;">
</p>

- **Playwright and Cypress Support**: Use either Playwright or Cypress as your testing framework, leveraging all their existing features and functionalities with Synpress.
- **One-Time Browser Setup & Caching:** Define your dApps wallet setup once, and let Synpress cache the browser state. This dramatically speeds up test execution and unlocks the full potential of Playwright and Cypress, including parallel testing.
- **Built-in Wallet and Blockchain Agnostic System**: Synpress core is designed to be wallet and blockchain agnostic, offering flexibility for future integrations and broader dApp support.
- **MetaMask Integration**: Deep integration with MetaMask for seamless testing of common dApp interactions.
- **TypeScript Support**: Enhanced TypeScript support for improved type safety and developer experience.
- **Anvil Support**: Easily spin up a local Anvil node with just one line of code for fast and isolated testing.
- **Blazing Fast Performance**: Synpress is optimized for speed, rivalling native Web2 testing framework performance.
- **Improved Debugging**: Detailed error handling, combined with the debugging tools of Playwright and Cypress, makes pinpointing and resolving issues simple.

## 🧑‍💻 Installation

```bash
pnpm add -D @synthetixio/synpress@latest
```

## 📝 Documentation

For comprehensive guides, API references, and examples, refer to our [official documentation](https://docs.synpress.io/docs/introduction).

## 🧑‍🤝‍🧑 Community

Join our vibrant community for support, discussions, and updates:

## How to Contribute

We welcome contributions from the community! Please refer to our [contributing guidelines](https://docs.synpress.io/docs/contribution).

- [Discord](https://discord.gg/XhZKSRGtWc)
- [X (formerly Twitter)](https://twitter.com/Synpress_)