Module: DurableStreams::Rails::Testing
- Defined in:
- lib/durable_streams/rails/testing.rb
Overview
Intercepts stream appends during tests, similar to how ActionCable::TestHelper captures broadcasts. Activated by DurableStreams::Rails::Broadcastable::TestHelper via setup/teardown hooks.
When installed, all calls to DurableStreams.broadcast_event_to and DurableStreams.broadcast_to are recorded in memory instead of being sent to the stream server. Captured messages can be inspected via messages_for.
Class Method Summary collapse
- .install! ⇒ Object
- .messages_for(stream_name) ⇒ Object
- .record(stream_name, message) ⇒ Object
- .recording? ⇒ Boolean
- .reset! ⇒ Object
Class Method Details
.install! ⇒ Object
13 14 15 |
# File 'lib/durable_streams/rails/testing.rb', line 13 def install! self. = Hash.new { |h, k| h[k] = [] } end |
.messages_for(stream_name) ⇒ Object
29 30 31 |
# File 'lib/durable_streams/rails/testing.rb', line 29 def (stream_name) ( || {})[stream_name] || [] end |
.record(stream_name, message) ⇒ Object
25 26 27 |
# File 'lib/durable_streams/rails/testing.rb', line 25 def record(stream_name, ) [stream_name] << if recording? end |
.recording? ⇒ Boolean
21 22 23 |
# File 'lib/durable_streams/rails/testing.rb', line 21 def recording? !.nil? end |
.reset! ⇒ Object
17 18 19 |
# File 'lib/durable_streams/rails/testing.rb', line 17 def reset! self. = nil end |