Module: RSpec::Rails::Matchers

Defined in:
lib/rspec/rails/matchers/action_cable.rb

Defined Under Namespace

Modules: ActionCable

Instance Method Summary collapse

Instance Method Details

#have_broadcasted_to(stream = nil) ⇒ Object Also known as: broadcast_to

Passes if a message has been sent to a stream inside block. May chain at_least, at_most or exactly to specify a number of times.

Examples:

expect {
  ActionCable.server.broadcast "messages", text: 'Hi!'
}.to have_broadcasted_to("messages")

# Using alias
expect {
  ActionCable.server.broadcast "messages", text: 'Hi!'
}.to broadcast_to("messages")

expect {
  ActionCable.server.broadcast "messages", text: 'Hi!'
  ActionCable.server.broadcast "all", text: 'Hi!'
}.to have_broadcasted_to("messages").exactly(:once)

expect {
  3.times { ActionCable.server.broadcast "messages", text: 'Hi!' }
}.to have_broadcasted_to("messages").at_least(2).times

expect {
  ActionCable.server.broadcast "messages", text: 'Hi!'
}.to have_broadcasted_to("messages").at_most(:twice)

expect {
  ActionCable.server.broadcast "messages", text: 'Hi!'
}.to have_broadcasted_to("messages").with(text: 'Hi!')


180
181
182
183
# File 'lib/rspec/rails/matchers/action_cable.rb', line 180

def have_broadcasted_to(stream = nil)
  check_action_cable_adapter
  ActionCable::HaveBroadcastedTo.new(stream)
end