Packages
mneme
0.8.0
0.10.2
0.10.1
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.9.0-alpha.1
0.9.0-alpha.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.3.0-rc.1
0.3.0-rc.0
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Snapshot testing tool using familiar assertions
Current section
Files
Jump to
Current section
Files
lib/mneme/errors.ex
defmodule Mneme.AssertionError do
@moduledoc false
defexception [:message]
end
defmodule Mneme.CompileError do
@moduledoc false
defexception [:message]
end
defmodule Mneme.InternalError do
@moduledoc false
defexception [:original_error, :original_stacktrace]
@impl true
def message(%{original_error: e, original_stacktrace: st}) do
"""
Mneme encountered an internal error. This is likely a bug in Mneme.
Please consider reporting this error at https://github.com/zachallaun/mneme/issues. Thanks!
#{Exception.format(:error, e, st)}
"""
end
end
defmodule Mneme.UnboundVariableError do
@moduledoc false
defexception [:vars, :message]
@impl true
def message(%{message: nil} = exception) do
%{vars: vars} = exception
"""
Updated auto-assertion is missing at least one previously bound variable:
#{format_vars(vars)}
Re-run this test to ensure it still passes.
"""
end
def message(%{message: message}) do
message
end
defp format_vars(vars) do
vars
|> Enum.map(fn
{name, _context} -> name
name -> name
end)
|> Enum.map_join(", ", &Atom.to_string/1)
end
end