action-cable-testing 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ae6b11ba1496e76335fabcdb649a62b6181ced820fe6454013479a2c4db13cb
4
- data.tar.gz: d7901f630056781c4b3a7fb5dc2d2a34f7504db14f4b277f1190bd5f7aefe8da
3
+ metadata.gz: ee3c261b614627cd0d9d72bc9084cb4b7408bacaca953260d4c372da8774676c
4
+ data.tar.gz: bbdde5b4fdb2deb81571c23198443674733962100311b8f013311f4a5a778307
5
5
  SHA512:
6
- metadata.gz: d1ebf14b39e2f7bcd37e6d46569af0b47e51b3a4668bf9accb8e19e2ad7bab36c124572fc4477e6ba8aa2921b3cf7aa479f0e114efee52884dc34e2870721204
7
- data.tar.gz: f9d2ee2937b88271102b17b8467d1431d2a92d193cfe5b35766a314721f3e447fee95e10cc56a48d2d52ba6d76dca675aed08452b00b08d64a914e08a70d4e8d
6
+ metadata.gz: 4ebdc170789756ee2885f503241048270ecf815b35881474a972373cc51697d25f47d823ebc8fa8b8f0a55f2f2ffa30d31fac3e19b6939e001058f72ad523ea0
7
+ data.tar.gz: 588e39d4f0c257b0786b966780be8b9ec8299ed87809a98da94fcf3e612c3d3abca5f5dfb861562abe60d9b5a3282cc0ce2439746c8da6f78b4cc8c64bd0d561
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## master
4
4
 
5
+ - Add session support for connection. ([@sponomarev][])
6
+
7
+ See https://github.com/palkan/action-cable-testing/pull/35
8
+
5
9
  ## 0.3.0
6
10
 
7
11
  - Add connection unit-testing utilities. ([@palkan][])
@@ -34,3 +38,4 @@ See https://github.com/palkan/action-cable-testing/issues/4.
34
38
 
35
39
  [@palkan]: https://github.com/palkan
36
40
  [@thesmartnik]: https://github.com/thesmartnik
41
+ [@sponomarev]: https://github.com/sponomarev
data/README.md CHANGED
@@ -34,7 +34,7 @@ class MyCableTest < ActionCable::TestCase
34
34
  ActionCable.server.broadcast 'messages', { text: 'hello' }
35
35
  assert_broadcasts 'messages', 1
36
36
 
37
- # Check the number of messages broadcasted to the stream within a block
37
+ # Check the number of messages broadcasted to the stream within a block
38
38
  assert_broadcasts('messages', 1) do
39
39
  ActionCable.server.broadcast 'messages', { text: 'hello' }
40
40
  end
@@ -115,7 +115,7 @@ class ChatChannelTest < ActionCable::Channel::TestCase
115
115
 
116
116
  subscribe room_number: 1
117
117
 
118
- assert_broadcasts_on("messages_1", text: "I'm here!", from: "John") do
118
+ assert_broadcast_on("messages_1", text: "I'm here!", from: "John") do
119
119
  perform :speak, message: "I'm here!"
120
120
  end
121
121
  end
@@ -141,7 +141,7 @@ class ChatChannelTest < ActionCable::Channel::TestCase
141
141
  # or
142
142
 
143
143
  def test_broadcasted_data
144
- assert_broadcasts_on(@room, text: "I'm here!", from: "John") do
144
+ assert_broadcast_on(@room, text: "I'm here!", from: "John") do
145
145
  perform :speak, message: "I'm here!"
146
146
  end
147
147
  end
@@ -184,6 +184,12 @@ def test_connect_with_headers_and_query_string
184
184
 
185
185
  assert_equal connection.user_id, "1"
186
186
  end
187
+
188
+ def test_connect_with_session
189
+ connect "/cable", session: { users[:john].id }
190
+
191
+ assert_equal connection.user_id, "1"
192
+ end
187
193
  ```
188
194
 
189
195
  ### RSpec Usage
@@ -36,6 +36,7 @@ module ActionCable
36
36
 
37
37
  class TestRequest < ActionDispatch::TestRequest
38
38
  attr_reader :cookie_jar
39
+ attr_accessor :session
39
40
 
40
41
  module CookiesStub
41
42
  # Stub signed cookies
@@ -59,7 +60,7 @@ module ActionCable
59
60
  module TestConnection
60
61
  attr_reader :logger, :request
61
62
 
62
- def initialize(path, cookies, headers)
63
+ def initialize(path, cookies, headers, session)
63
64
  inner_logger = ActiveSupport::Logger.new(StringIO.new)
64
65
  tagged_logging = ActiveSupport::TaggedLogging.new(inner_logger)
65
66
  @logger = ActionCable::Connection::TaggedLoggerProxy.new(tagged_logging, tags: [])
@@ -72,6 +73,7 @@ module ActionCable
72
73
 
73
74
  @request = TestRequest.create(env)
74
75
  @request.cookie_jar = cookies.with_indifferent_access
76
+ @request.session = session.with_indifferent_access
75
77
  end
76
78
 
77
79
  def build_headers(headers)
@@ -174,10 +176,10 @@ module ActionCable
174
176
  # Performs connection attempt (i.e. calls #connect method).
175
177
  #
176
178
  # Accepts request path as the first argument and cookies and headers as options.
177
- def connect(path = "/cable", cookies: {}, headers: {})
179
+ def connect(path = "/cable", cookies: {}, headers: {}, session: {})
178
180
  connection = self.class.connection_class.allocate
179
181
  connection.singleton_class.include(TestConnection)
180
- connection.send(:initialize, path, cookies, headers)
182
+ connection.send(:initialize, path, cookies, headers, session)
181
183
  connection.connect if connection.respond_to?(:connect)
182
184
 
183
185
  # Only set instance variable if connected successfully
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActionCable
4
4
  module Testing
5
- VERSION = "0.3.3"
5
+ VERSION = "0.3.4"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action-cable-testing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vladimir Dementyev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-14 00:00:00.000000000 Z
11
+ date: 2018-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actioncable