NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Approval Tests implementation in Dart. Inspired by ApprovalTests.
Last release 6 days ago
02 Oct 2026
Release timing varies
gaps range from 8 days to 8 months
Most releases are documented
notes for 27 of 36 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
52 releases · first in 2024
Bundled the approval-tests-testing consumer skill with text and JSON examples, explicit naming, baseline review, and strict CI guidance.
approval-tests-testing consumer skill with text and JSONdart run skills@ get.Full Changelog: v1.7.1...v1.7.2
Added direct links from the core package guide to the Flutter package and its executable state-management example.
One column per month.
Full Changelog: v1.6.1...v1.7.1
The old getter still works and is deprecated for removal in 2.0.0.
ApprovalContext, an explicit verification identity carrying the
source path and test name, plus the ContextAwareNamer capability that
exposes it. Supplying a context replaces stack-trace parsing and
package:test internals for that verification; omitting it keeps the 1.x
inference, so existing approval names are unchanged byte for byte.
Constructing an ApprovalContext with an empty sourcePath is rejected.
Namer and IndexedNamer accept and copy a context.testName while no test framework is active and
addTestName is true now fails with InvalidApprovalNameException instead
of silently collapsing every verification in the file onto one artifact name.ReporterAvailability, an explicit contract letting a reporter declare
whether it can run in the current environment. A Reporter that does not
implement it is treated as always available, so existing custom reporters
keep working unchanged.FirstWorkingReporter, which reports through the first available entry
in declaration order. One configuration now covers a local diff tool and a
headless CI runner. Throws NoAvailableReporterException when no entry is
available.MultiReporter, which reports through every available entry
sequentially in declaration order. The first failure is rethrown after the
remaining reporters have run; later failures are logged so none is lost.NoAvailableReporterException, which names the reporters it checked.CommandLineReporter, DiffReporter, and GitReporter now declare
availability. GitReporter probes its command with --version.DiffReporter.isReporterAvailable to DiffReporter.isAvailable so
availability has one name across all reporters. The old getter still works
and is deprecated for removal in 2.0.0.Options.reporter still defaults to CommandLineReporter; reporter
composition is opt-in.ApprovalContext deliberately carries no description. ApprovalNamer
already owns one, used in both the artifact name and the collision
diagnostic; a second source would need a winner picked in two places.
Artifact-level descriptions are deferred to the artifact model.package:test_api remains a dependency. Invoker still supplies the ambient
test name, the collision-registry owner, and the collision diagnostic name.
ApprovalContext makes it unnecessary per verification, not per package;
removing it is a 2.0 concern.Fixed atomic text replacement on Windows when concurrent readers temporarily lock the destination. Access, sharing, and lock violations are retried wi
Full Changelog: v1.4.3...v1.6.1
Added ScrubWithAliases for preserving relationships between repeated volatile values and ScrubUuids for case-insensitive canonical UUID aliases.
ScrubWithAliases for preserving relationships between repeated
volatile values and ScrubUuids for case-insensitive canonical UUID aliases.InvalidApprovalNameException and
ApprovalPathCollisionException diagnostics for unsafe names and duplicate
artifact paths.Added CompositeScrubber for applying multiple scrubbers in a predictable order.
CompositeScrubber for applying multiple scrubbers in a predictable
order.MissingApprovedPolicy with backwards-compatible createAndPass and
strict writeReceivedAndFail modes. Strict failures expose
ApprovalMismatchKind.missingApproved and leave the received artifact for
review without writing the approved file.talker with the pure-Dart ispectify 6.1.2 logging core. Console
diagnostics now preserve exception stack traces without retaining in-memory
log history.ispectify 6.1.2.Clearer failure messages: file paths now shown in DoesntMatchException and CommandLineReporter .
DoesntMatchException and CommandLineReporter.Full Changelog: v1.4.2...v1.4.3
Added convertObject() to ApprovalConverter for direct object-to-JSON conversion.
convertObject() to ApprovalConverter for direct object-to-JSON conversion.resetCounters() to IndexedNamer.DoesntMatchException in Approvals.verify..catchError to prevent unhandled async exceptions.RegExp instances, simplified code paths.Fixed ScrubDates to implement ApprovalScrubber directly.
ScrubDates to implement ApprovalScrubber directly.CommandLineReporter buffer tracking.comporator_ide.dart → comparator_ide.dart.Feat/minor upds by @yelmuratoff in #36
test/approval_test.dart invokes every suite under test/groups, so the aggregated run covers all group-level tests.Upgrade package to version 1.3.6 with updated dependencies, a logging refactor, and license corrections
Upgrade package to version 1.3.6 with updated dependencies, a logging refactor, and license corrections
Enhancements:
Update meta, test, talker, test_api, and sizzle_lints dependencies for improved compatibility
Refactor ApprovalLogger to use string keys for log level mappings instead of TalkerLogType keys
Documentation:
Bump version to 1.3.6 in pubspec.yaml, README, and CHANGELOG
Chores:
Correct copyright holder, URLs, and formatting in LICENSE
ApprovalUtils.readFile and FileComparator.ScrubDates counters per invocation and removed double separators from namer outputs.README.md.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Normalized JSON conversion to produce valid output for any map keys and optional class wrappers.
ApprovalUtils.readFile and FileComparator.ScrubDates counters per invocation and removed double separators from namer outputs.README.md.Added the IndexedNamer . This class allows you to create a Namer that includes an index in the file name. It is useful when you need to multiple verif
IndexedNamer. This class allows you to create a Namer that includes an index in the file name. It is useful when you need to multiple verify calls in a single test.
makeNamer factory method in lib/src/approvals.dart and replaced it with copyWith for creating Namer instances._normalizeContent method in lib/src/comparator/file_comparator.dart to standardize line endings and trim whitespace for file comparisons.--generate-notes option to the gh release create command in .github/workflows/publish.yml.example/main.dart to use a Namer with a subfolder and a CommandLineReporter in verifyAll.Full Changelog: v1.1.6...v1.2.1
Release version 1.2.0-dev.2
Release version 1.2.0-dev.2
Nothing published for this version
Upgraded all dependencies to actuals.
Nothing published for this version
Nothing published for this version
Updated README.md file: fix links.
Added CLI additional options: Usage: dart run approval_tests:review [arguments]
dart run approval_tests:review [arguments]
--help Print this usage information.--list Print a list of project .received.txt files.<index> Review an .received.txt file indexed by --list.<path/to/.received.txt> Review an .received.txt file.- Updated README.md file.
Added new reporter: GitReporter. It allows you to use git to view the differences between the received and approved files.
GitReporter. It allows you to use git to view the differences between the received and approved files.dart run approval_tests:review- Initial major release.
Rewrited comparators. Now it is only FileComparator.
README.md file.TODO.md file.approveResult to true and using Diff Tool.CommandLineReporter.
There were changes with the comparison method, as well as highlighting by color the places where there are differences. Green - approved. White text on red background - Differences in received file.Nothing published for this version
Updated dependencies. Removed dcli package.
dcli package.IDEComparator now gets the current StackTrace if an error occurs.Updated dependencies and actions versions.
CONTRIBUTING.md file: added Arlo's Commit Notation.Added setup visual studio code action to the build_and_test workflow for test IDEComparator.
build_and_test workflow for test IDEComparator.Completed coverage of the project with tests. Now the project has 100% coverage.
Autopublish to pub.dev if the version in pubspec.yaml has been changed by auto adding a new tag to the repositories.
pub.dev if the version in pubspec.yaml has been changed by auto adding a new tag to the repositories.github actions. Codecov badge, graph was added to README.md.mdsnippets to github actions. And example snippets added to README.md.ApprovalTests.Dart.StarterProject. You can find it in the README.md file.Nothing published for this version
Nothing published for this version
Fix with default file path if package from pub.dev.
pub.dev.Test publish action with new version: v0.3.8.
v0.3.8.Updated pubspec.yaml file: changed homepage.
pubspec.yaml file: changed homepage.The repository has been moved to Approvals.
txt file.Github Actions.dependabot.README.md file.TODO.md file.Default lints replaced by sizzle_lints.
lints replaced by sizzle_lints.analysis_options file.README.md file.- Updated README.md file.
README.md file.deleteReceivedFile field was added to the ApprovalTests class. If it is set to true, the received file will be deleted after test. By default, it is s
deleteReceivedFile field was added to the ApprovalTests class. If it is set to true, the received file will be deleted after test. By default, it is set to false.logErrors field was added to the ApprovalTests class. If it is set to true, the errors will be logged. By default, it is set to true.logResults field was added to the ApprovalTests class. If it is set to true, the success results will be logged. By default, it is set to true.Fix: approval_dart changed to approval_tests.
approval_dart changed to approval_tests.I rewrote the main functions of the class. Now you can use several comparison options.
JSON strings.Added verifyAll method to verify array of items _(or use array as inputs)_.
verifyAll method to verify array of items (or use array as inputs).verifyAllCombinationsAsJson method to verify all combinations of items as JSON.README.md file.- Updated README.md file.
README.md file.Updated README.md file: added examples, more info.
README.md file: added examples, more info.Comparator completed, some refactoring. Updated README.md file.
README.md file.Some updates with README.md file.
README.md file.First working version, need to expand functionality and add more flexibilty. Also need to add more tests.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →