diff --git a/tests/test_machine.py b/tests/test_machine.py index 2ac43f1..9f8b5a8 100644 --- a/tests/test_machine.py +++ b/tests/test_machine.py @@ -222,3 +222,44 @@ def test_follow( assert len(state_observer.transitions) == 2 assert state_observer.transitions[0] == (machine._IDLE, machine._BUSY) assert state_observer.transitions[1] == (machine._BUSY, machine._IDLE) + + +def test_simple_state_transitions(chain, machine, clock, eip1559_transaction, account): + assert machine.current_state == machine._IDLE + + for i in range(3): + machine._cycle() + # no change in state + assert machine.current_state == machine._IDLE + + atx = machine.queue_transaction( + params=eip1559_transaction, + signer=account, + ) + + # broadcast tx + machine._cycle() + assert machine.current_state == machine._BUSY + assert machine.busy + + # pause + machine.pause() + machine._cycle() + assert machine.current_state == machine._PAUSED + assert machine._pause + + # resume after pausing + machine.resume() + machine._cycle() + assert machine.current_state == machine._BUSY + + # finalize tx + while machine.busy: + chain.mine(1) + machine._cycle() + + assert atx.final is True + + # transition to idle + machine._cycle() + assert machine.current_state == machine._IDLE