spec/models/concerns/eventable_spec.rb in reactor-0.1.1 vs spec/models/concerns/eventable_spec.rb in reactor-0.1.2
- old
+ new
@@ -1,21 +1,25 @@
require 'spec_helper'
class Auction < ActiveRecord::Base
+ attr_accessor :we_want_it
+
def ring_timeout
created_at + 30.seconds
end
def ring_timeout_was
created_at + 10.seconds
end
publishes :bell
publishes :ring, at: :ring_timeout, watch: :name
+ publishes :conditional_event_on_save, if: -> { we_want_it }
end
class TestSubscriber < Reactor::Subscriber
+ @@called = false
on_fire do
@@called = true
end
end
@@ -40,8 +44,20 @@
TestSubscriber.class_variable_get(:@@called).should be_true
TestSubscriber.class_variable_set(:@@called, false)
auction.start_at = 1.day.from_now
auction.save
TestSubscriber.class_variable_get(:@@called).should be_false
+ end
+
+ it 'can fire events onsave for any condition' do
+ TestSubscriber.create! event: :conditional_event_on_save
+ auction
+ TestSubscriber.class_variable_set(:@@called, false)
+ auction.start_at = 1.day.from_now
+ auction.save
+ TestSubscriber.class_variable_get(:@@called).should be_false
+ auction.we_want_it = true
+ auction.save
+ TestSubscriber.class_variable_get(:@@called).should be_true
end
end
end
\ No newline at end of file