approval_tests_flutter 1.4.0 copy "approval_tests_flutter: ^1.4.0" to clipboard
approval_tests_flutter: ^1.4.0 copied to clipboard

Approval Tests implementation in Dart (Flutter). Inspired by ApprovalTests.

1.4.0 #

  • Fix (behavior change): approvalTest() now writes a full, self-contained snapshot of the widget tree on every call. Previously a second call in the same test emitted only the delta from the prior call, producing snapshots that could not be reviewed in isolation. Existing approved files that relied on the old delta output must be re-approved.
  • Snapshot lines are now sorted deterministically, so approvals no longer flake on widget tree-traversal order.
  • Added tester.approvalSemantics() — approval testing of the rendered accessibility (semantics) tree (labels, values, hints, tooltips, identifiers, actions); geometry is omitted so output is stable across platforms.
  • Added tester.approvalGolden(finder) — golden/pixel approvals named to sit alongside the text approvals; run flutter test --update-goldens to (re)create the image.
  • Exported the expectWidget / tapWidget / findBy finder helpers and registerTypes, and exposed widgetTypes / widgetNames on tester.printExpects().
  • Removed the cold-start flutter --version subprocess; the Dart SDK is now resolved from FLUTTER_ROOT, making widget-name extraction faster and not dependent on flutter being on PATH.
  • Removed the unused match dependency.
  • Internal cleanup: replaced the Completer/.then wrappers with async/await (failures now propagate instead of hanging to timeout), guarded the analyzer parse-result cast, fixed the stale Approved.initialize() setup hint, and stopped tracking the generated .approval_tests/ cache.

1.3.2 #

  • Raised the analyzer constraint to >=12.0.0 <14.0.0 to resolve a version conflict with flutter_test on current Flutter/Dart SDKs, whose pinned test/test_api require analyzer 12+.
  • Migrated widget-name extraction to the analyzer 12 AST API (ClassDeclaration.namePart.typeName), replacing the removed name token getter.
  • Note: this drops support for analyzer 8–11 (older Flutter SDKs).

1.3.1 #

  • Fixed loadWidgetNames to return an empty string when the widget cache file is missing, avoiding LateInitializationError.
  • Restored intl reverse-lookup loading by re-enabling JSON parsing in loadEnStringReverseLookup.
  • Updated WidgetMeta.hashCode to match its equality semantics, ensuring set/map deduplication works as intended.
  • Added regression tests covering widget name loading, intl reverse lookup, and WidgetMeta equality.
  • Declared an upper bound on the supported Dart SDK (<4.0.0) to satisfy pub publishing requirements.
  • Added explicit platform support metadata (Android, iOS, Linux, macOS, Windows) so pub scoring can detect supported platforms.
  • Replaced the bundled license text with the standard Apache 2.0 wording recognized by pub.dev.
  • Added a minimal example/main.dart showcasing a widget approval test.
  • Updated dependency constraints (for example approval_tests now targets 1.3.3) to stay aligned with upstream packages.
  • ContextLocator replaced by AnalysisContextCollection

1.1.6 #

  • Upgraded all dependencies to actuals.

1.1.3 #

  • Updated README.md file: fix links.

1.1.2 #

  • Added CLI additional options:
    Usage: dart run approval_tests:review [arguments]
    • 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.

1.1.1 #

  • Updated README.md file.

1.1.0 #

  • Breaking release:
    • Added new reporter: GitReporter. It allows you to use git to view the differences between the received and approved files.
    • Added support to approve files using CLI. Now you can approve files using the command line: dart run approval_tests:review
    • Added support to use ApprovalTests during widget tests.
    • Added header to generated files. For resolved issues you can add this to approved files:
      '# This file was generated by approval_tests. Please do not edit.\n'
    • Some minor changes and code improvements. Thanks to Richard Coutts

1.0.0 #

  • Initial major release.

0.5.1 #

  • Updated documentation.
  • Updated dependencies.
  • Updated README.md file.
  • Updated TODO.md file.
  • Rewrited comparators. Now it is only FileComparator.
  • Rewrited Scrubbers: regex scrubber, date scrubber.
  • Now, first run automatically create approved snapshot. You can approve another snapshot by setting approveResult to true and using Diff Tool.
  • Completely rewritten 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.
  • Internal updates such as:
    • Adding android studio installation via github actions to test Diff Reporter on different devices.
    • Full code test coverage after significant changes.
    • Changes to getting file name and path depending on platform.

0.4.6 #

0.4.5 #

  • Updated dependencies and actions versions.
  • Updated Logger's output: now it is more informative.
  • Updated CONTRIBUTING.md file: added Arlo's Commit Notation.

0.4.4 #

  • Added setup visual studio code action to the build_and_test workflow for test IDEComparator.

0.4.3 #

  • Completed coverage of the project with tests. Now the project has 100% coverage.

0.4.2 #

  • Autopublish to pub.dev if the version in pubspec.yaml has been changed by auto adding a new tag to the repositories.
  • Codecov added to github actions. Codecov badge, graph was added to README.md.
  • Added mdsnippets to github actions. And example snippets added to README.md.
  • Added ApprovalTests.Dart.StarterProject. You can find it in the README.md file.

0.3.9 #

  • Fix with default file path if package from pub.dev.
  • Gilded rose moved to starter project.
  • Code formatted.

0.3.8 #

  • Test publish action with new version: v0.3.8.

0.3.6-dev #

  • Updated pubspec.yaml file: changed homepage.

0.3.5-dev #

  • The repository has been moved to Approvals.
  • Fixed bug with checking of strings received from txt file.
  • Added Github Actions.
  • Added dependabot.
  • Updated README.md file.
  • Updated TODO.md file.

0.3.3-dev #

  • Updated README.md file.

0.3.2-dev #

  • Default lints replaced by sizzle_lints.
  • Updated analysis_options file.
  • Updated README.md file.

0.3.1-dev #

  • Updated README.md file.

0.3.0-dev #

  • Approval was refactored.
  • Added tests.
  • Code formatted.
  • 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.

0.2.1-dev #

  • Fix: approval_dart changed to approval_tests.
  • Code formatted.

0.2.0-dev #

  • I rewrote the main functions of the class. Now you can use several comparison options.
  • Added methods for comparing JSON strings.
  • Added methods for array comparison.
  • Improved documentation.
  • Added more examples: each method has its own small example.

0.1.0-dev #

  • Added verifyAll method to verify array of items (or use array as inputs).
  • Added verifyAllCombinationsAsJson method to verify all combinations of items as JSON.
  • Updated README.md file.

0.0.9-dev #

  • Updated README.md file.

0.0.8-dev #

  • Updated README.md file: added examples, more info.

0.0.7-dev #

  • Comparator completed, some refactoring. Updated README.md file.

0.0.6-dev #

  • Some updates with README.md file.

0.0.5-dev #

  • First working version, need to expand functionality and add more flexibilty. Also need to add more tests.

0.0.1-dev #

  • Initial version.
6
likes
160
points
258
downloads

Documentation

API reference

Publisher

verified publishershodev.live

Weekly Downloads

Approval Tests implementation in Dart (Flutter). Inspired by ApprovalTests.

Repository (GitHub)
View/report issues
Contributing

Topics

#testing #approval #approvals #tests #approval-tests

License

Apache-2.0 (license)

Dependencies

analyzer, approval_tests, flutter, flutter_test

More

Packages that depend on approval_tests_flutter