This PR is similar to https://github.com/rails/rails/pull/47025, it makes Action Cable's `assert_broadcasts` return the messages that were broadast. This way you can do more analysis on them: ```ruby messages = assert_broadcasts("test", 2) do ActionCable.server.broadcast "test", { message: "one" } ActionCable.server.broadcast "test", { message: "two" } end assert_equal 2, messages.length assert_equal({ "message" => "one" }, messages.first) assert_equal({ "message" => "two" }, messages.last) ``` This is helpful if you expect lots of messages to be broadcast or if you want to only match on some element of the data; `assert_broadcast_on` doesn't work well in either of those scenarios.
2.5 KiB
-
assert_broadcasts
now returns the messages that were broadcast.This makes it easier to do further analysis on those messages:
message = assert_broadcasts("test", 1) do ActionCable.server.broadcast "test", "message" end assert_equal "message", message messages = assert_broadcasts("test", 2) do ActionCable.server.broadcast "test", { message: "one" } ActionCable.server.broadcast "test", { message: "two" } end assert_equal 2, messages.length assert_equal({ "message" => "one" }, messages.first) assert_equal({ "message" => "two" }, messages.last)
Alex Ghiculescu
-
Display broadcasted messages on error message when using
assert_broadcast_on
Stéphane Robino
-
The Action Cable client now supports subprotocols to allow passing arbitrary data to the server.
const consumer = ActionCable.createConsumer() consumer.addSubProtocol('custom-protocol') consumer.connect()
See also:
Guillaume Hain
-
Redis pub/sub adapter now automatically reconnects when Redis connection is lost.
Vladimir Dementyev
-
The
connected()
callback can now take a{reconnected}
parameter to differentiate connections from reconnections.import consumer from "./consumer" consumer.subscriptions.create("ExampleChannel", { connected({reconnected}) { if (reconnected) { ... } else { ... } } })
Mansa Keïta
-
The Redis adapter is now compatible with redis-rb 5.0
Compatibility with redis-rb 3.x was dropped.
Jean Boussier
-
The Action Cable server is now mounted with
anchor: true
.This means that routes that also start with
/cable
will no longer clash with Action Cable.Alex Ghiculescu
-
ActionCable.server.remote_connections.where(...).disconnect
now sendsdisconnect
message before closing the connection with the reconnection strategy specified (defaults totrue
).Vladimir Dementyev
-
Added command callbacks to
ActionCable::Connection::Base
.Now you can define
before_command
,after_command
, andaround_command
to be invoked before, after or around any command received by a client respectively.Vladimir Dementyev
Please check 7-0-stable for previous changes.