Sha256: 8c68a5981bc2d4f942b1c2afcabf1dc0e242a5bd6c4de1113a6f290987773bcc
Contents?: true
Size: 1.25 KB
Versions: 14
Compression:
Stored size: 1.25 KB
Contents
require_relative '../../test_helper' require_relative '../../files/integrations/event_on_failure_integration' class EventOnFailureTest < StateMachinesTest def setup StateMachines::Integrations.reset StateMachines::Integrations.register(EventOnFailureIntegration) @klass = Class.new do attr_accessor :errors end @machine = StateMachines::Machine.new(@klass, integration: :event_on_failure_integration) @machine.state :parked @machine.events << @event = StateMachines::Event.new(@machine, :ignite) @object = @klass.new @object.state = 'parked' end def test_should_invalidate_the_state @event.fire(@object) assert_equal ['cannot transition via "ignite"'], @object.errors end def test_should_run_failure_callbacks callback_args = nil @machine.after_failure { |*args| callback_args = args } @event.fire(@object) object, transition = callback_args assert_equal @object, object refute_nil transition assert_equal @object, transition.object assert_equal @machine, transition.machine assert_equal :ignite, transition.event assert_equal :parked, transition.from_name assert_equal :parked, transition.to_name end def teardown StateMachines::Integrations.reset end end
Version data entries
14 entries across 14 versions & 2 rubygems