fix: don't return tuple from valid_next_state

This commit is contained in:
Zach Daniel 2024-08-31 17:08:19 -04:00
parent 7c03b06264
commit 73615bb455
3 changed files with 7 additions and 7 deletions

View file

@ -1,2 +1,2 @@
erlang 26.0.2
elixir 1.15.4
erlang 27.0.1
elixir 1.17.2-otp-27

View file

@ -20,9 +20,9 @@ defmodule AshStateMachine.Checks.ValidNextState do
Ash.Changeset.get_attribute(changeset, attribute) ||
AshStateMachine.Info.state_machine_default_initial_state!(changeset.resource)
{:ok, new_state in AshStateMachine.Info.state_machine_initial_states!(changeset.resource)}
new_state in AshStateMachine.Info.state_machine_initial_states!(changeset.resource)
else
{:ok, true}
true
end
end
@ -44,7 +44,7 @@ defmodule AshStateMachine.Checks.ValidNextState do
all_states = AshStateMachine.Info.state_machine_all_states(changeset.resource)
if not is_nil(target) && !Ash.Expr.expr?(target) && target not in all_states do
{:ok, false}
false
else
states_expr =
Enum.reduce(transitions, nil, fn transition, expr ->
@ -60,7 +60,7 @@ defmodule AshStateMachine.Checks.ValidNextState do
end
else
# state transitions are checked in validations when using `transition_state`
{:ok, true}
true
end
end
end

View file

@ -28,7 +28,7 @@ defmodule AshStateMachineTest do
test "`from: :*` can transition from any state" do
for state <- [:pending, :confirmed, :on_its_way, :arrived, :error] do
assert {:ok, machine} = Order.abort(%Order{state: state})
assert {:ok, machine} = Order.abort!(%Order{state: state})
assert machine.state == :aborted
end
end