typelevel/munit-cats-effect
56.9
Adequate · 20 September 2026
901
lines of production code
Scala
primary language
1
measurement over time
What this system is
This system is a Scala library that integrates the MUnit testing framework with the Cats Effect ecosystem. It provides a base suite and specific assertion methods for validating IO and SyncIO effects, along with fixture support for managing resource lifecycles in tests. The library ensures binary compatibility across multiple Scala and Cats Effect versions.
Features
Initial release of munit-cats-effect integration library
This change introduces the initial build setup and documentation for the munit-cats-effect library, which integrates MUnit with cats-effect. The repository now includes a \.scalafmt.conf\ file configured for Scala 2.13 Source 3 compatibility and an updated \.gitignore\ that excludes IDE and build artifacts (such as \.metals\, \.bloop\, and \.bsp\). The \README.md\ has been significantly expanded to document the library's features, including support for \IO\ and \SyncIO\ assertions, suite-local fixtures, and binary compatibility for both Cats Effect 2 and 3 across Scala 2.12, 2.13, and 3.
(repo-wide) · high confidence
New Cats Effect integration suite with assertions, fixtures, and timeouts
This change introduces the \CatsEffectSuite\ base class and supporting traits (\CatsEffectAssertions\, \CatsEffectFixtures\, \CatsEffectFunFixtures\) for testing Cats Effect programs. Users can now write tests that return \IO\ or \SyncIO\ values, which are automatically transformed into Futures by the framework. The suite provides specific assertion methods like \assertIO\, \assertSyncIO\, \interceptIO\, and \interceptMessageIO\ for validating effect results. It also includes fixture support via \ResourceFunFixture\ and \ResourceSuiteLocalFixture\ for managing resource lifecycle in tests. Additionally, it introduces \munitIOTimeout\ to configure graceful cancellation of \IO\-based tests, with a fallback \munitTimeout\ for overall test execution limits. The implementation also includes internal nesting checks to prevent common mistakes like returning \IO\[IO\[\_\]\]\.
core/src/main/scala/munit · high confidence
New ResourceFixture for managing Cats Effect resources in Munit tests
A new \ResourceFixture\ object and \IOFixture\ abstract class have been added to the \munit.catseffect\ package, providing \testLocal\ and \suiteLocal\ methods. These allow users to easily integrate Cats Effect \Resource\[IO, A\]\ instances into Munit tests, automatically handling resource allocation and cleanup at the test or suite level, and throwing a specific exception if the fixture is accessed before instantiation.
core/src/main/scala/munit/catseffect · high confidence
Test coverage
Added comprehensive test coverage for Cats Effect assertions, syntax, and fixtures
Added new test suites in core/src/test to verify the Cats Effect integration, including CatsEffectAssertionsSpec for assertIO/interceptIO functions, CatsEffectAssertionsSyntaxSpec for extension methods like assertEquals and mapOrFail, CatsEffectFixturesSpec for resource lifecycle management, CatsEffectFunFixturesSpec for functional fixtures, CatsEffectSuiteSpec for timeout and nested effect handling, and ExampleSuite demonstrating usage patterns.
core/src/test · high confidence
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
Baseline
- First survey — no prior run to compare against. CAI 57.
Lenses
- Code Health 100
- Architecture 69
- Maturity 54
- Readiness 50
- Security 65
Changes since last survey
- 300 commits — 298 feature/other, 2 fixes
By area
- (repo) — 146 commits
- (root) — 70 commits
- project/build.properties — 33 commits
- project/plugins.sbt — 32 commits
- core/src — 9 commits
- .github/workflows — 8 commits
- docs/index.md — 2 commits
Notable commits
- fix: Fix incorrect library dependency in documentation
- fix: fix Scala 2.12 hurdle
- change: Add assumeSyncIO to accompany assumeIO
- change: Address MiMa warnings
- change: Address a Scala 2.13.17 compilation issue
- change: Bump munit to 1.1.1
- change: Bump tlBaseVersion
- change: Bump tlBaseVersion to 2.2
- change: Inherit sbt-scala-native-crossproject from sbt-typelevel plugin
- change: Merge branch 'main' into restore-fixture-ordering-test
- change: Merge branch 'main' into sn-0.5
- change: Merge branch 'main' into update/auxlib-0.5.12
- change: Merge branch 'main' into update/cats-effect-3.6.1
- change: Merge branch 'main' into update/scala-library-2.13.13
- change: Merge branch 'main' into update/scala-library-2.13.16
- change: Merge branch 'main' into update/scala-library-2.13.17
- change: Merge pull request #348 from typelevel/update/cats-effect-3.5.3
- change: Merge pull request #349 from typelevel/update/nscplugin-0.4.17
- change: Merge pull request #350 from typelevel/update/munit-1.0.0-M11
- change: Merge pull request #351 from typelevel/update/sbt-typelevel-0.6.6
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
typelevel/munit-cats-effect 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 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 6e591338d405cf73579b64327b66f4f9b5e96edc — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.