mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 05:23:03 +12:00
fix: only put keywords to be interpolated in message in error vars (#821)
* fix: only put keywords to be interpolated in message in error vars --------- Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
This commit is contained in:
parent
d617f42daf
commit
dbb4a38ea3
6 changed files with 13 additions and 18 deletions
|
@ -55,7 +55,11 @@ defmodule Ash.Error.Exception do
|
||||||
}
|
}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
super(opts)
|
super(opts) |> Map.update(:vars, [], &clean_vars/1)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp clean_vars(vars) do
|
||||||
|
vars |> Kernel.||([]) |> Keyword.drop([:field, :message, :path])
|
||||||
end
|
end
|
||||||
|
|
||||||
defoverridable exception: 1, message: 1
|
defoverridable exception: 1, message: 1
|
||||||
|
|
|
@ -175,7 +175,7 @@ defmodule Ash.Type.Keyword do
|
||||||
{:ok, [{field, field_value} | result]}
|
{:ok, [{field, field_value} | result]}
|
||||||
|
|
||||||
{:error, errors} ->
|
{:error, errors} ->
|
||||||
{:error, Enum.map(errors, fn error -> [field: field, message: error[:message]] end)}
|
{:error, Enum.map(errors, fn error -> Keyword.put(error, :field, field) end)}
|
||||||
end
|
end
|
||||||
|
|
||||||
:error ->
|
:error ->
|
||||||
|
|
|
@ -154,7 +154,7 @@ defmodule Ash.Type.Map do
|
||||||
{:ok, Map.put(result, field, field_value)}
|
{:ok, Map.put(result, field, field_value)}
|
||||||
|
|
||||||
{:error, errors} ->
|
{:error, errors} ->
|
||||||
{:error, Enum.map(errors, fn error -> [field: field, message: error[:message]] end)}
|
{:error, Enum.map(errors, fn error -> Keyword.put(error, :field, field) end)}
|
||||||
end
|
end
|
||||||
|
|
||||||
:error ->
|
:error ->
|
||||||
|
|
|
@ -978,7 +978,6 @@ defmodule Ash.Test.CalculationTest do
|
||||||
|> Enum.map(& &1.active)
|
|> Enum.map(& &1.active)
|
||||||
end
|
end
|
||||||
|
|
||||||
@tag :focus
|
|
||||||
test "aggregates using calculations pass actor to calculations", %{
|
test "aggregates using calculations pass actor to calculations", %{
|
||||||
user1: user,
|
user1: user,
|
||||||
actor1: actor,
|
actor1: actor,
|
||||||
|
|
|
@ -122,7 +122,7 @@ defmodule Type.KeywordTest do
|
||||||
changeset: nil,
|
changeset: nil,
|
||||||
query: nil,
|
query: nil,
|
||||||
error_context: [],
|
error_context: [],
|
||||||
vars: [field: :foo, message: "field must be present", path: [:metadata]],
|
vars: [],
|
||||||
path: [:metadata]
|
path: [:metadata]
|
||||||
}
|
}
|
||||||
] = changeset.errors
|
] = changeset.errors
|
||||||
|
@ -146,11 +146,7 @@ defmodule Type.KeywordTest do
|
||||||
changeset: nil,
|
changeset: nil,
|
||||||
query: nil,
|
query: nil,
|
||||||
error_context: [],
|
error_context: [],
|
||||||
vars: [
|
vars: [min: 0],
|
||||||
field: :bar,
|
|
||||||
message: "must be more than or equal to %{min}",
|
|
||||||
path: [:metadata]
|
|
||||||
],
|
|
||||||
path: [:metadata]
|
path: [:metadata]
|
||||||
}
|
}
|
||||||
] = changeset.errors
|
] = changeset.errors
|
||||||
|
@ -200,7 +196,7 @@ defmodule Type.KeywordTest do
|
||||||
changeset: nil,
|
changeset: nil,
|
||||||
query: nil,
|
query: nil,
|
||||||
error_context: [],
|
error_context: [],
|
||||||
vars: [field: :foo, message: "value must not be nil", path: [:metadata]],
|
vars: [],
|
||||||
path: [:metadata]
|
path: [:metadata]
|
||||||
}
|
}
|
||||||
] = changeset.errors
|
] = changeset.errors
|
||||||
|
|
|
@ -124,7 +124,7 @@ defmodule Type.MapTest do
|
||||||
changeset: nil,
|
changeset: nil,
|
||||||
query: nil,
|
query: nil,
|
||||||
error_context: [],
|
error_context: [],
|
||||||
vars: [field: :foo, message: "field must be present", path: [:metadata]],
|
vars: [],
|
||||||
path: [:metadata]
|
path: [:metadata]
|
||||||
}
|
}
|
||||||
] = changeset.errors
|
] = changeset.errors
|
||||||
|
@ -148,11 +148,7 @@ defmodule Type.MapTest do
|
||||||
changeset: nil,
|
changeset: nil,
|
||||||
query: nil,
|
query: nil,
|
||||||
error_context: [],
|
error_context: [],
|
||||||
vars: [
|
vars: [min: 0],
|
||||||
field: :bar,
|
|
||||||
message: "must be more than or equal to %{min}",
|
|
||||||
path: [:metadata]
|
|
||||||
],
|
|
||||||
path: [:metadata]
|
path: [:metadata]
|
||||||
}
|
}
|
||||||
] = changeset.errors
|
] = changeset.errors
|
||||||
|
@ -202,7 +198,7 @@ defmodule Type.MapTest do
|
||||||
changeset: nil,
|
changeset: nil,
|
||||||
query: nil,
|
query: nil,
|
||||||
error_context: [],
|
error_context: [],
|
||||||
vars: [field: :foo, message: "value must not be nil", path: [:metadata]],
|
vars: [],
|
||||||
path: [:metadata]
|
path: [:metadata]
|
||||||
}
|
}
|
||||||
] = changeset.errors
|
] = changeset.errors
|
||||||
|
|
Loading…
Reference in a new issue