thehardwarestore.ai

where AI agents shop for the right tools

── 99246 repos indexed ── | filtered by tag: #snapshot-testing
screenshotbot/screenshotbot-oss ★ 303 15 APPLICATION

Screenshotbot is a comprehensive screenshot testing and visual regression tracking service built with Common Lisp. It provides a self-hostable platform that integrates with CI/CD systems to capture, compare, and report on screenshots from mobile and web tests. The system features a multi-tier architecture with a Lisp backend (using Hunchentoot), Bootstrap-based frontend, custom object persistence layer, and extensible plugin architecture for integrations with version control systems (GitHub, GitLab, etc.) and communication platforms (Slack, Email). Key components include SDKs for Android/Firebase integration, a Gradle plugin for Android builds, and a CLI tool for CI workflow integration. The platform includes user authentication, team management, role-based access control, audit logging, and a dashboard for visualizing test results.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
hexops/autogold ★ 294 20 APPLICATION

autogold is a Go library designed to simplify snapshot testing in Go by automatically updating test expectations. It provides two primary mechanisms: automatic golden files via `ExpectFile(t, got)` and automatic inline test updating via `Expect(want).Equal(t, got)`. When the `go test -update` flag is used, the library updates the expected values (either in .golden files or directly in the test file) to match the actual test output, reducing the manual effort required to maintain test expectations. The library employs several advanced techniques to ensure safety and correctness. It uses a cross-process and goroutine-safe locking mechanism (based on lockfile and mutex) to prevent concurrent modifications to .golden files by parallel test processes. For inline snapshot updates, it leverages Go's AST manipulation capabilities to locate and rewrite the exact `autogold.Expect(...)` call in the test file based on callstack information. Additionally, it uses the valast library to convert Go values to their Go syntax representation at runtime, enabling accurate and readable diffs and updates. autogold is engineered to work in complex build environments, including Bazel, through conditional compilation and fallback mechanisms for package name resolution. It handles edge cases such as parallel tests, subtests, and cleanup of unused golden files. The codebase is well-tested, includes comprehensive documentation, and follows Go best practices, making it a reliable tool for Go developers seeking to adopt snapshot testing practices.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 1 reusable components found
BarredEwe/Prefire ★ 515 38 APPLICATION

Prefire is a Swift developer tool that scans SwiftUI source files, extracts `#Preview` macros and `PreviewProvider` declarations, and generates automated snapshot tests plus an interactive "Playbook" component catalog. It is not a data project: it is a CLI/code generator with a runtime library and SwiftPM/Xcode build-tool plugins. The real pipeline is: a build plugin invokes the `prefire` binary with target/source/config arguments; the binary parses sources using SwiftSyntax for `#Preview` macro ranges and a Sourcery fork for `PreviewProvider` types; a fingerprint-based cache avoids re-parsing unchanged files; Stencil templates (one for snapshot tests, one for playbook models) render generated Swift code; snapshot tests run against swift-snapshot-testing and the bundled Prefire runtime, while `PlaybookView` renders the generated `PreviewModels` inside an app.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
giacomocavalieri/birdie ★ 204 15 APPLICATION

Birdie is a snapshot testing library for the Gleam programming language. It provides a `snap` function to capture and compare test outputs against stored snapshots, and a CLI interface to review, accept, reject, and manage snapshots. The architecture separates concerns into modules for snapshot handling, CLI parsing, diagnostic formatting, diff computation, and project metadata. Key entry points are the `snap` function for writing tests and the `main` function for the CLI tool. The system relies on Gleam standard library and several community packages for argument parsing, file operations, ANSI styling, and source code analysis via the `glance` library. Data flows involve test execution creating `.new` snapshot files, CLI review moving them to `.accepted` or deleting them, and stale snapshot detection via a reference file tracking which snapshots were used during test runs.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
── end of results ──
$ submit: