Skip to content

Commit 399e507

Browse files
committed
♻️ error: Format root causes into numbered list
Also move the full trace into the line below
1 parent c04081c commit 399e507

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

lib/babel/error.ex

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,22 @@ defmodule Babel.Error do
2424

2525
@impl true
2626
def message(%__MODULE__{reason: reason, trace: trace}) do
27+
root_causes =
28+
trace
29+
|> Trace.root_causes()
30+
|> Enum.with_index(1)
31+
|> Enum.map_join("\n", fn {root_cause, index} ->
32+
"#{index}. " <> inspect(root_cause)
33+
end)
34+
2735
"""
2836
Failed to transform data: #{inspect(reason)}
2937
30-
Root Cause(s): #{inspect(Trace.root_causes(trace))}
38+
Root Cause(s):
39+
#{root_causes}
3140
32-
Full Trace: #{inspect(trace)}
41+
Full Trace:
42+
#{inspect(trace)}
3343
"""
3444
end
3545
end

test/babel/error_test.exs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,12 @@ defmodule Babel.ErrorTest do
4747
assert_message(error, """
4848
Failed to transform data: :broken
4949
50-
Root Cause(s): #{inspect([root_cause1, root_cause2])}
50+
Root Cause(s):
51+
1. #{inspect(root_cause1)}
52+
2. #{inspect(root_cause2)}
5153
52-
Full Trace: #{inspect(trace)}
54+
Full Trace:
55+
#{inspect(trace)}
5356
""")
5457
end
5558
end

0 commit comments

Comments
 (0)