WhatsApp/assert
71.7
Strong · 2 October 2026
2k
lines of production code
Erlang
primary language
2
measurements over time
What this system is
This system is an Erlang assertion library that provides core testing utilities including pattern matching, value comparison, and diagnostic diffing. Recent development has focused on expanding the macro suite with new comparison and intermediate value capture features while refining error reporting and diagnostic clarity. The codebase has also undergone maintenance to enforce stricter type safety through tagged unions and to ensure compatibility with Erlang/OTP 27.
How it got here
October 2025 — assert library release and documentation update
3 changes.
The period centered on the initial release of the assert library for Erlang, establishing core assertion, blame, and diff utilities alongside a foundational test suite. This development effort was complemented by structural updates to the project documentation, including reorganizing the README and configuring ex\_doc to properly include license and reference materials.
April 2026 — Updated test data for assertMatch error handling
1 change.
The test suite data for \assertMatch\ has been updated to reflect changes in how assertion failures are reported. The implementation in \assert\_match.erl\ now directly invokes the error-raising logic within the expression evaluation, simplifying the control flow. Correspondingly, the expected output in \assert\_match.expected\ has been adjusted to show the new error structure, which includes the matched value and specific error info for the pattern, ensuring the tests accurately validate the current error reporting behavior.
June 2026 — Erlang/OTP 27 minimum requirement and wa\_diff API update
1 change.
The library now requires Erlang/OTP 27 as the minimum version, dropping support for OTP 26. Additionally, the wa\_diff library's compute/2 function has been updated to return a tagged union ({eq, Value} or {diff, Left, Right}) instead of a map, providing stricter equality checks and a more explicit return structure for users comparing Erlang data types.
August 2026 — Expanded assertion macros and test coverage for wa\_assert and wa\_diff
1 change.
The test suite now includes comprehensive tests for new assertion capabilities, specifically the \assertNotMatch\ macro, various comparison assertions (greater than, less than, in-range, with delta), and intermediate value capture for short-circuit expressions. Additionally, the \wa\_diff\ tests have been updated to reflect a change in the return type of \wa\_diff:compute\ from a map to a tagged union (\{eq, ...}\ or \{diff, ...}\), and the \assertion\ test case has been corrected to pass arguments in the proper order to \?assertEqual\.
September 2026 — Assertion diagnostics and code hygiene
4 changes.
This period focused on enhancing the debugging experience by improving assertion error reporting, including the addition of new macros and clearer diagnostic messages. The work also addressed minor code quality issues by fixing Dialyzer opaque warnings and correcting EDoc formatting in the source files.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 71 → 72 (+0.9)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 96 → 96 (-0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 59 → 59 (+0.0)
- Readiness 64 → 68 (+3.6)
- Security 100 → 100 (+0.0)
Resolved (4)
- Coverage not measured — no coverage collector is wired up
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Documentation: no usage examples (README.md)
New (1)
- Outdated: erlfmt
Changes since last survey
- 3 commits — 1 feature/other, 2 fixes
By area
- .github/workflows — 2 commits
- test/wa_blame_SUITE.erl — 1 commit
Notable commits
- fix: Fix EDoc failure in wa_diff and check docs in CI
- fix: Test OTP 28 and 29 in CI and fix Dialyzer opaque warning (#6)
- change: wa_blame: give function_clause_multiple_args a real multi-argument body
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
WhatsApp/assert was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 3225a2745cf5cbf6bfdd5739dc4c894dfaea02d5 — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.