diff --git a/lib/diffo/type/value.ex b/lib/diffo/type/value.ex index 43b1999..5fbcd5e 100644 --- a/lib/diffo/type/value.ex +++ b/lib/diffo/type/value.ex @@ -89,6 +89,12 @@ defmodule Diffo.Type.Value do storage: :type_and_value ] + def cast_input(%Diffo.Type.Dynamic{} = dynamic, constraints) do + super(%{type: "dynamic", value: dynamic}, constraints) + end + + def cast_input(value, constraints), do: super(value, constraints) + def handle_change(_old_value, nil, _constraints), do: {:ok, nil} def handle_change(old_value, new_value, constraints), do: super(old_value, new_value, constraints) diff --git a/test/type/value_test.exs b/test/type/value_test.exs index 4b311ba..6bdaf72 100644 --- a/test/type/value_test.exs +++ b/test/type/value_test.exs @@ -33,7 +33,6 @@ defmodule Diffo.Type.ValueTest do Ash.Type.cast_input(Value, value, Value.subtype_constraints()) end - @tag :skip test "cast_input dynamic" do value = %Dynamic{type: Patch, value: %Patch{aEnd: 1, zEnd: 42}}