An open source library for integrating with happo.io - a visual regression testing platform that helps you catch unintended visual changes in your applications.
This library is currently under active development. Features and APIs may change between releases. Follow this repository to get notified about new releases and updates.
For comprehensive documentation, visit docs.happo.io.
- CLI Tool: Includes a command-line interface for easy integration
- Flexible Configuration: Support for multiple configuration file formats
- TypeScript Support: Built with TypeScript and provides full type definitions
- ES Modules: Uses modern ES modules for better tree-shaking and performance
npm install happo --save-dev
# or
pnpm add happo --save-dev
# or
yarn add happo --devCreate a happo.config.ts file in your project root:
import { defineConfig } from 'happo';
export default defineConfig({
apiKey: process.env.HAPPO_API_KEY!,
apiSecret: process.env.HAPPO_API_SECRET!,
targets: {
'chrome-desktop': {
browserType: 'chrome',
viewport: '1280x720',
},
'firefox-desktop': {
browserType: 'firefox',
viewport: '1280x720',
},
'ios-safari': {
browserType: 'ios-safari',
},
},
});Run Happo using the CLI:
npx happoThe CLI will automatically find your configuration file and run the visual regression test suite.
The library automatically detects configuration files in the following order:
happo.config.jshappo.config.mjshappo.config.cjshappo.config.tshappo.config.mtshappo.config.cts
apiKey&apiSecret: Authentication credentials for happo.iointegration: Set up the integration typetargets: Target configurations, including regular browsers and accessibility targetsproject: Optional project name
Supported browser types:
- Desktop:
chrome,firefox,edge,safari,accessibility - Mobile:
ios-safari,ipad-safari
Each target supports advanced options like:
- Viewport sizing
- Maximum dimensions
- Color scheme preferences
- Settings for silencing animations
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
- Clone the repository
- Install dependencies:
pnpm install - Build the project:
pnpm build - Run all tests and checks:
pnpm all
To run the tests you will need a .env.local file with some keys. Use
env.example as a starting point.
- Uses ESLint for code linting
- Prettier for code formatting
- TypeScript for type safety
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Check the documentation
- Open an issue in this GitHub repository
- Contact happo.io support at support@happo.io