diff options
author | George Claghorn <george.claghorn@gmail.com> | 2018-12-31 11:12:01 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-31 11:12:01 -0500 |
commit | c45e3e74eda12885b37d55651540a7e6849b08d5 (patch) | |
tree | a5dae0dd052a5d262cc15afda8eda154d17e985d /actioncable/lib | |
parent | 04d091209af3b2a8cf4bc827a30209d47ba27253 (diff) | |
parent | 9c8d4850f1d69db784ffafa93f38f780bf57c519 (diff) | |
download | rails-c45e3e74eda12885b37d55651540a7e6849b08d5.tar.gz rails-c45e3e74eda12885b37d55651540a7e6849b08d5.tar.bz2 rails-c45e3e74eda12885b37d55651540a7e6849b08d5.zip |
Merge pull request #34740 from sponomarev/feature/assert_has_stream
Add streams assert methods to ActionCable channel test case
Diffstat (limited to 'actioncable/lib')
-rw-r--r-- | actioncable/lib/action_cable/channel/test_case.rb | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/actioncable/lib/action_cable/channel/test_case.rb b/actioncable/lib/action_cable/channel/test_case.rb index dd2762ccd0..c4cf0ac0e7 100644 --- a/actioncable/lib/action_cable/channel/test_case.rb +++ b/actioncable/lib/action_cable/channel/test_case.rb @@ -84,7 +84,18 @@ module ActionCable # assert subscription.confirmed? # # # Asserts that the channel subscribes connection to a stream - # assert_equal "chat_1", streams.last + # assert_has_stream "chat_1" + # + # # Asserts that the channel subscribes connection to a specific + # # stream created for a model + # assert_has_stream_for Room.find(1) + # end + # + # def test_does_not_stream_with_incorrect_room_number + # subscribe room_number: -1 + # + # # Asserts that not streams was started + # assert_no_streams # end # # def test_does_not_subscribe_without_room_number @@ -115,8 +126,6 @@ module ActionCable # An instance of the current channel, created when you call `subscribe`. # <b>transmissions</b>:: # A list of all messages that have been transmitted into the channel. - # <b>streams</b>:: - # A list of all created streams subscriptions (as identifiers) for the subscription. # # # == Channel is automatically inferred @@ -167,7 +176,6 @@ module ActionCable class_attribute :_channel_class attr_reader :connection, :subscription - delegate :streams, to: :subscription ActiveSupport.run_load_hooks(:action_cable_channel_test_case, self) end @@ -251,6 +259,39 @@ module ActionCable super(broadcasting_for(stream_or_object), *args) end + # Asserts that no streams have been started. + # + # def test_assert_no_started_stream + # subscribe + # assert_no_streams + # end + # + def assert_no_streams + assert subscription.streams.empty?, "No streams started was expected, but #{subscription.streams.count} found" + end + + # Asserts that the specified stream has been started. + # + # def test_assert_started_stream + # subscribe + # assert_has_stream 'messages' + # end + # + def assert_has_stream(stream) + assert subscription.streams.include?(stream), "Stream #{stream} has not been started" + end + + # Asserts that the specified stream for a model has started. + # + # def test_assert_started_stream_for + # subscribe id: 42 + # assert_has_stream_for User.find(42) + # end + # + def assert_has_stream_for(object) + assert_has_stream(broadcasting_for(object)) + end + private def check_subscribed! raise "Must be subscribed!" if subscription.nil? || subscription.rejected? |