Module: Upkeep::Rails::Testing
- Defined in:
- lib/upkeep/rails/testing.rb
Instance Method Summary collapse
- #assert_upkeep_subscription_registered(message = nil) ⇒ Object
- #capture_upkeep_broadcasts(subscription = upkeep_subscription, &block) ⇒ Object
- #upkeep_stream_names(subscription = upkeep_subscription) ⇒ Object
- #upkeep_subscription ⇒ Object
Instance Method Details
#assert_upkeep_subscription_registered(message = nil) ⇒ Object
6 7 8 9 10 |
# File 'lib/upkeep/rails/testing.rb', line 6 def assert_upkeep_subscription_registered( = nil) assert_select "script[data-upkeep-subscription]" assert Upkeep::Rails.subscriptions.subscriptions.any?, || "expected Upkeep to register at least one subscription" end |
#capture_upkeep_broadcasts(subscription = upkeep_subscription, &block) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/upkeep/rails/testing.rb', line 22 def capture_upkeep_broadcasts(subscription = upkeep_subscription, &block) raise ArgumentError, "capture_upkeep_broadcasts requires a block" unless block raise NoMethodError, "include ActionCable::TestHelper before calling capture_upkeep_broadcasts" unless respond_to?(:capture_broadcasts) captures = {} nested = upkeep_stream_names(subscription).reverse_each.reduce(block) do |inner, stream_name| proc { captures[stream_name] = capture_broadcasts(stream_name, &inner) } end nested.call captures.values.flatten end |
#upkeep_stream_names(subscription = upkeep_subscription) ⇒ Object
16 17 18 19 20 |
# File 'lib/upkeep/rails/testing.rb', line 16 def upkeep_stream_names(subscription = upkeep_subscription) raise ArgumentError, "no Upkeep subscription is registered" unless subscription ([subscription..fetch(:stream_name)] + subscription..fetch(:shared_stream_names, [])).uniq end |
#upkeep_subscription ⇒ Object
12 13 14 |
# File 'lib/upkeep/rails/testing.rb', line 12 def upkeep_subscription Upkeep::Rails.subscriptions.subscriptions.last end |