diff --git a/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb b/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb index 8458fae2f..674a9113a 100644 --- a/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb +++ b/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb @@ -96,8 +96,11 @@ def from_channel(channel) private def stream - @stream ||= if @target.is_a?(String) + @stream ||= case @target + when String @target + when Symbol + @target.to_s else check_channel_presence @channel.broadcasting_for(@target) diff --git a/spec/rspec/rails/matchers/action_cable/have_broadcasted_to_spec.rb b/spec/rspec/rails/matchers/action_cable/have_broadcasted_to_spec.rb index 7da826eca..a2b3457a7 100644 --- a/spec/rspec/rails/matchers/action_cable/have_broadcasted_to_spec.rb +++ b/spec/rspec/rails/matchers/action_cable/have_broadcasted_to_spec.rb @@ -50,6 +50,12 @@ def broadcast(stream, msg) }.to have_broadcasted_to('stream') end + it "passes when using symbol target" do + expect { + broadcast(:stream, 'hello') + }.to have_broadcasted_to(:stream) + end + it "passes when using alias" do expect { broadcast('stream', 'hello')