View Source Changelog

This project adheres to Semantic Versioning.

v0-3-0-rc-1

v0.3.0-rc.1

enhancements

Enhancements

  • [Core] Add a :force_update option that forces re-generating assertion patterns even when they succeed. See the Options documentation for more info.
  • [CLI] Prompts will now show options that were overridden from the defaults.
  • [CLI] Mneme now prints a one-line summary of new, updated, rejected, and skipped assertions at the end of the test run.

v0-3-0-rc-0

v0.3.0-rc.0

It is now recommended to use Elixir v1.14.4 or later.

breaking-changes

Breaking changes

  • [Core] auto_assert now uses <- when comparing against falsy values instead of ==. Support for comparisons using == has been removed.

enhancements-1

Enhancements

  • [Core] Add three new auto-assertions:
  • [Core] Existing auto-assertions will now run when Mneme.start() is not called, but new or failing auto-assertions will fail without prompting (#32).
  • [Core] Pattern generation improvements:
    • Ranges now use range syntax like 1..10 and 1..10//2 instead of generating a %Range{} struct.

fixes

Fixes

  • [Core] Fix a configuration precedence bug that caused options set in application config to always override module, describe, or test options.
  • [Core] Fix a compatibility issue with Ecto ~> 3.9.4 (#34).
  • [CLI] Fix a confusing diff result that could occur with some binary operations (#11).
  • [CLI] Preceding comments are no longer shown in diffs (#26).
  • [CLI] Fix a number of diffing errors related to structs.

v0-2-7-2023-03-29

v0.2.7 (2023-03-29)

fixes-1

Fixes

  • Fix a crash related to escaped string interpolation characters (#29).

v0-2-6-2023-03-27

v0.2.6 (2023-03-27)

enhancements-2

Enhancements

  • Auto-assertion prompts can now be skipped (s) in addition to accepted (y) or rejected (n). This allows the test clause to continue so that later assertions might be run, but fails the test run once the suite finishes.
  • Updated formatting for semantic diffs:
    • Diffs will be displayed side-by-side if terminal width allows. To always display diffs stacked, use the diff_style: :stacked option; see the "Configuration" section of the Mneme module doc for more.
    • Both :stacked and :side_by_side diffs have updated, more consistent formatting.

fixes-2

Fixes

  • Don't overwrite test files if their content changes after starting the test run (#23).
  • Fix a crash that occurred when a value contained nested strings with newlines, e.g. {:ok, "hello\nworld"} (#25).
  • The j/k options will no longer be rendered when prompting if there is only a single pattern option.

v0-2-4-v0-2-5-2023-03-25

v0.2.4, v0.2.5 (2023-03-25)

fixes-3

Fixes

  • Remove unnecessary files from Hex package. This cuts the package size down drastically.

v0-2-3-2023-03-25

v0.2.3 (2023-03-25)

fixes-4

Fixes

  • Fix diffing for certain sigil variations.
  • Fix dbg-related error when running MIX_ENV=test iex -S mix (#20).
  • Fix ETS-related error when calling Mneme.start/1 multiple times (#20).

v0-2-2-2023-03-20

v0.2.2 (2023-03-20)

fixes-5

Fixes

  • Disable a semantic diffing optimization that caused poor diff results in certain cases, usually manifesting as incorrect branches being compared.

v0-2-1-2023-03-19

v0.2.1 (2023-03-19)

enhancements-3

Enhancements

  • More consistent formatting between :semantic and :text diffs.

v0-2-0-2023-03-18

v0.2.0 (2023-03-18)

breaking

Breaking

  • Mneme now requires Elixir v1.14 or later.

enhancements-4

Enhancements

  • Adds semantic diffs which selectively highlight only meaningful changes when updating an assertion. This can be disabled with the diff: :text option; see the "Configuration" section of the Mneme module doc for more.

fixes-6

Fixes

  • Invalid options now cause a warning instead of crashing test process.
  • Internal errors now show an error instead of crashing test process.
  • Fix bug causing multiple identical choices to be presented in some cases where empty lists were a part of the value.

v0-1-6-2023-03-04

v0.1.6 (2023-03-04)

enhancements-5

Enhancements

  • Improved compile-time error message when auto_assert is used outside of a test block (#9).

v0-1-5-2023-02-25

v0.1.5 (2023-02-25)

enhancements-6

Enhancements

  • More consistent handling of charlists: lists of integers will now generate themselves as a pattern as well as a charlist if the list is ASCII printable (#6).

v0-1-4-2023-02-23

v0.1.4 (2023-02-23)

fixes-7

Fixes

  • Fix a bug that could cause auto_assert expressions to revert to the previous value when using Mneme.start(restart: true) (#7).

v0-1-3-2023-02-22

v0.1.3 (2023-02-22)

enhancements-7

Enhancements

  • Add a :default_pattern configuration option for auto-assertions which controls the pattern that should be selected by default when prompted.

fixes-8

Fixes

  • When converting an auto-assertion to an ExUnit assertion, select the identical pattern when the :default_pattern is :infer (set by default).

v0-1-2-2023-02-21

v0.1.2 (2023-02-21)

enhancements-8

Enhancements

  • Add a :restart option to Mneme.start/1 to restart Mneme if called multiple times.

v0-1-1-2023-02-20

v0.1.1 (2023-02-20)

enhancements-9

Enhancements

  • Dramatically reduce the performance gap between auto_assert and ExUnit's assert.

v0-1-0-2023-02-19

v0.1.0 (2023-02-19)

First release.