mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
3cd69fa2c0
That allows us to create a separate, isolated Action Cable server instance within the same app.
30 lines
895 B
Ruby
30 lines
895 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "test_helper"
|
|
|
|
module ChannelPrefixTest
|
|
def test_channel_prefix
|
|
server2 = ActionCable::Server::Base.new(config: ActionCable::Server::Configuration.new)
|
|
server2.config.cable = alt_cable_config
|
|
server2.config.logger = Logger.new(StringIO.new).tap { |l| l.level = Logger::UNKNOWN }
|
|
|
|
adapter_klass = server2.config.pubsub_adapter
|
|
|
|
rx_adapter2 = adapter_klass.new(server2)
|
|
tx_adapter2 = adapter_klass.new(server2)
|
|
|
|
subscribe_as_queue("channel") do |queue|
|
|
subscribe_as_queue("channel", rx_adapter2) do |queue2|
|
|
@tx_adapter.broadcast("channel", "hello world")
|
|
tx_adapter2.broadcast("channel", "hello world 2")
|
|
|
|
assert_equal "hello world", queue.pop
|
|
assert_equal "hello world 2", queue2.pop
|
|
end
|
|
end
|
|
end
|
|
|
|
def alt_cable_config
|
|
cable_config.merge(channel_prefix: "foo")
|
|
end
|
|
end
|