method

assert_broadcasts

Importance_2
v7.1.3.4 - Show latest stable - 0 notes - Class: TestHelper
assert_broadcasts(stream, number, &block) public

Asserts that the number of broadcasted messages to the stream matches the given number.

def test_broadcasts
  assert_broadcasts 'messages', 0
  ActionCable.server.broadcast 'messages', { text: 'hello' }
  assert_broadcasts 'messages', 1
  ActionCable.server.broadcast 'messages', { text: 'world' }
  assert_broadcasts 'messages', 2
end

If a block is passed, that block should cause the specified number of messages to be broadcasted. It returns the messages that were broadcasted.

def test_broadcasts_again
  message = assert_broadcasts('messages', 1) do
    ActionCable.server.broadcast 'messages', { text: 'hello' }
  end
  assert_equal({ text: 'hello' }, message)

  messages = assert_broadcasts('messages', 2) do
    ActionCable.server.broadcast 'messages', { text: 'hi' }
    ActionCable.server.broadcast 'messages', { text: 'how are you?' }
  end
  assert_equal 2, messages.length
  assert_equal({ text: 'hi' }, messages.first)
  assert_equal({ text: 'how are you?' }, messages.last)
end
Show source
Register or log in to add new notes.