turbo-rails 2.0.7 → 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4553ee49b6504b50ebd79364400cd57bcba2a4fd544aff65f88a4c5a12ffdaac
4
- data.tar.gz: 7500ba88dc381e1601b0778c31e68be1a16ce72dcc535bbd8b54ba4eebac5d0e
3
+ metadata.gz: 4727e6617dc1c23ff57cb213e98eb3fd3aa11a364451d10622034c9514cb658a
4
+ data.tar.gz: d20337dc3363beb18a4c5ef1b57cef22643ba2d654294daa84ce7a447645dc55
5
5
  SHA512:
6
- metadata.gz: 40376048e8a552fb9ac3570e6fce78f7d0741cdab4b8d3851305fb5541f50dd381a4d9616e7c4fb147a1d58d7b546ab6d07061ac79f3851b8163605084cabc62
7
- data.tar.gz: 85414d553bc478bf46ba0294381b09031e58949edd93d47e8f02b721a0fcb556388a5b3b20741a3011f3547fb0281d9bdbcc7e518a97df27953474ce3d012add
6
+ metadata.gz: 32987a0bdfce8ac6a2050e7190293f5eddabf9e6349b9d228a557153d27adda86d760dcdf4fdcd3ccc00a8fd8ccb9ed945101898d6c4636cba8289835ea89ed1
7
+ data.tar.gz: c5382c8d5504679799bdb22c30b73b0f057ac4c1ab818d386a23da0925e2f743f4c5f630fc33c6c9795394ef0f4fef199d661343cc1664e2156edc081ee885b0
data/README.md CHANGED
@@ -100,6 +100,64 @@ This gem provides a `turbo_stream_from` helper to create a turbo stream.
100
100
  <%# Rest of show here %>
101
101
  ```
102
102
 
103
+ ### Testing Turbo Stream Broadcasts
104
+
105
+ Receiving server-generated Turbo Broadcasts requires a connected Web Socket.
106
+ Views that render `<turbo-cable-stream-source>` elements with the
107
+ `#turbo_stream_from` view helper incur a slight delay before they're ready to
108
+ receive broadcasts. In System Tests, that delay can disrupt Capybara's built-in
109
+ synchronization mechanisms that wait for or assert on content that's broadcast
110
+ over Web Sockets. For example, consider a test that navigates to a page and then
111
+ immediately asserts that broadcast content is present:
112
+
113
+ ```ruby
114
+ test "renders broadcasted Messages" do
115
+ message = Message.new content: "Hello, from Action Cable"
116
+
117
+ visit "/"
118
+ click_link "All Messages"
119
+ message.save! # execute server-side code to broadcast a Message
120
+
121
+ assert_text message.content
122
+ end
123
+ ```
124
+
125
+ If the call to `Message#save!` executes quickly enough, it might beat-out any
126
+ `<turbo-cable-stream-source>` elements rendered by the call to `click_link "All
127
+ Messages"`.
128
+
129
+ To wait for any disconnected `<turbo-cable-stream-source>` elements to connect,
130
+ call [`#connect_turbo_cable_stream_sources`](turbo-rails/blob/wait-for-cable-stream-sourceshttps://github.com/hotwired/turbo-rails/blob/main/lib/turbo/system_test_helper.rb):
131
+
132
+ ```diff
133
+ test "renders broadcasted Messages" do
134
+ message = Message.new content: "Hello, from Action Cable"
135
+
136
+ visit "/"
137
+ click_link "All Messages"
138
+ + connect_turbo_cable_stream_sources
139
+ message.save! # execute server-side code to broadcast a Message
140
+
141
+ assert_text message.content
142
+ end
143
+ ```
144
+
145
+ By default, calls to [`#visit`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara/Session:visit) will wait for all `<turbo-cable-stream-source>` elements to connect. You can control this by modifying the `config.turbo.test_connect_after_actions`. For example, to wait after calls to [`#click_link`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara/Node/Actions:click_link), add the following to `config/environments/test.rb`:
146
+
147
+ ```ruby
148
+ # config/environments/test.rb
149
+
150
+ config.turbo.test_connect_after_actions << :click_link
151
+ ```
152
+
153
+ To disable automatic connecting, set the configuration to `[]`:
154
+
155
+ ```ruby
156
+ # config/environments/test.rb
157
+
158
+ config.turbo.test_connect_after_actions = []
159
+ ```
160
+
103
161
  [See documentation](https://turbo.hotwired.dev/handbook/streams).
104
162
 
105
163
  ## Installation
@@ -140,6 +198,7 @@ Note that this documentation is updated automatically from the main branch, so i
140
198
  - [Turbo Test Assertions](https://rubydoc.info/github/hotwired/turbo-rails/main/Turbo/TestAssertions)
141
199
  - [Turbo Integration Test Assertions](https://rubydoc.info/github/hotwired/turbo-rails/main/Turbo/TestAssertions/IntegrationTestAssertions)
142
200
  - [Turbo Broadcastable Test Helper](https://rubydoc.info/github/hotwired/turbo-rails/main/Turbo/Broadcastable/TestHelper)
201
+ - [Turbo System Test Helper](https://rubydoc.info/github/hotwired/turbo-rails/main/Turbo/SystemTestHelper)
143
202
 
144
203
  ## Compatibility with Rails UJS
145
204