Happo
Visual regression testing and accessibility testing
Install / Use
/learn @happo/HappoREADME
Happo
An open source library for integrating with happo.io - a visual and accessibility regression testing platform that helps you catch unintended changes in your applications.
📚 Documentation
For comprehensive documentation, visit docs.happo.io.
🚀 Features
- 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
📦 Installation
npm install happo --save-dev
# or
pnpm add happo --save-dev
# or
yarn add happo --dev
🛠️ Usage
Basic Configuration
Create 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': {
type: 'chrome',
viewport: '1280x720',
},
'firefox-desktop': {
type: 'firefox',
viewport: '1280x720',
},
'ios-safari': {
type: 'ios-safari',
},
},
});
CLI Usage
Run Happo using the CLI:
npx happo
The CLI will automatically find your configuration file and run the visual regression test suite.
🔧 Configuration Options
Supported Configuration Files
The library automatically detects configuration files in the following order:
happo.config.jshappo.config.mjshappo.config.cjshappo.config.tshappo.config.mtshappo.config.cts
Key Configuration Properties
apiKey&apiSecret: Authentication credentials for happo.iointegration: Set up the integration typetargets: Target configurations, including regular browsers and accessibility targetsproject: Optional project name
Browser Targets
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
🤝 Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
Development Setup
- 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.
Code Style
- Uses ESLint for code linting
- Prettier for code formatting
- TypeScript for type safety
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Links
💡 Support
For support and questions:
- Check the documentation
- Open an issue in this GitHub repository
- Contact happo.io support at support@happo.io
Related Skills
node-connect
341.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Writing Hookify Rules
84.6kThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
review-duplication
99.6kUse this skill during code reviews to proactively investigate the codebase for duplicated functionality, reinvented wheels, or failure to reuse existing project best practices and shared utilities.
