action-cable-testing 0.5.0 → 0.6.0
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 +4 -4
- data/CHANGELOG.md +5 -1
- data/README.md +6 -5
- data/lib/action_cable/testing/channel/test_case.rb +4 -3
- data/lib/action_cable/testing/rails_six.rb +1 -1
- data/lib/action_cable/testing/rspec.rb +29 -16
- data/lib/action_cable/testing/test_helper.rb +4 -1
- data/lib/action_cable/testing/version.rb +1 -1
- data/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb +4 -1
- metadata +6 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4685e6b9a972c44862aaa6fe59c4454c93d4557cbad57bd1a2eefdf9e9f6e572
|
4
|
+
data.tar.gz: e3ca2c5959b3f55032da62efabd94ff7829e724957acb2cf67b94b98fd4c9771
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0764c04d9aad6eb8eaa6a890c9e442053db169f1ec0676b00f45dc8e7345268c2688adad1db6afba1496f43d7e1e8e362cf366d66c75939dab402414734673d6
|
7
|
+
data.tar.gz: f2fe591556834380e989906a906bf2ba1a298098aa02675e4aa99a9b353902dd7cb775ca37a8fd60a44947c51d71bc6b1344358538d29b55700234e010c343d5
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -4,13 +4,12 @@
|
|
4
4
|
|
5
5
|
This gem provides missing testing utils for [Action Cable][].
|
6
6
|
|
7
|
-
**NOTE:** this gem [has](https://github.com/rails/rails/pull/33659) [been](https://github.com/rails/rails/pull/33969) [merged](https://github.com/rails/rails/pull/34845) into Rails 6.0.
|
7
|
+
**NOTE:** this gem [has](https://github.com/rails/rails/pull/33659) [been](https://github.com/rails/rails/pull/33969) [merged](https://github.com/rails/rails/pull/34845) into Rails 6.0 and [into RSpec 4](https://github.com/rspec/rspec-rails/pull/2113).
|
8
8
|
|
9
9
|
If you're using Minitest – you don't need this gem anymore.
|
10
10
|
|
11
11
|
If you're using RSpec < 4, you still can use this gem to write Action Cable specs even for Rails 6.
|
12
12
|
|
13
|
-
|
14
13
|
## Installation
|
15
14
|
|
16
15
|
Add this line to your application's Gemfile:
|
@@ -274,10 +273,10 @@ Or when broacasting to an object:
|
|
274
273
|
```ruby
|
275
274
|
RSpec.describe CommentsController do
|
276
275
|
describe "POST #create" do
|
277
|
-
let(:
|
276
|
+
let(:the_post) { create :post }
|
278
277
|
|
279
|
-
expect { post :create, comment: { text: 'Cool!', post_id:
|
280
|
-
have_broadcasted_to(
|
278
|
+
expect { post :create, comment: { text: 'Cool!', post_id: the_post.id } }.to
|
279
|
+
have_broadcasted_to(the_post).from_channel(PostChannel).with(text: 'Cool!')
|
281
280
|
end
|
282
281
|
end
|
283
282
|
```
|
@@ -337,6 +336,8 @@ end
|
|
337
336
|
|
338
337
|
#### Shared contexts to switch between adapters
|
339
338
|
|
339
|
+
**NOTE:** this feature is gem-only and hasn't been migrated to RSpec 4. You can still use the gem for that by adding `require "rspec/rails/shared_contexts/action_cable"` to your `rspec_helper.rb`.
|
340
|
+
|
340
341
|
Sometimes you may want to use _real_ Action Cable adapter instead of the test one (for example, in Capybara-like tests).
|
341
342
|
|
342
343
|
We provide shared contexts to do that:
|
@@ -5,6 +5,9 @@ require "active_support/test_case"
|
|
5
5
|
require "active_support/core_ext/hash/indifferent_access"
|
6
6
|
require "json"
|
7
7
|
|
8
|
+
require "action_cable/testing/rails_six"
|
9
|
+
using ActionCable::Testing::Rails6
|
10
|
+
|
8
11
|
module ActionCable
|
9
12
|
module Channel
|
10
13
|
class NonInferrableChannelError < ::StandardError
|
@@ -292,9 +295,7 @@ module ActionCable
|
|
292
295
|
def broadcasting_for(stream_or_object)
|
293
296
|
return stream_or_object if stream_or_object.is_a?(String)
|
294
297
|
|
295
|
-
self.class.channel_class.broadcasting_for(
|
296
|
-
[self.class.channel_class.channel_name, stream_or_object]
|
297
|
-
)
|
298
|
+
self.class.channel_class.broadcasting_for(stream_or_object)
|
298
299
|
end
|
299
300
|
end
|
300
301
|
|
@@ -15,7 +15,7 @@ module ActionCable
|
|
15
15
|
module Rails6
|
16
16
|
begin
|
17
17
|
# Has been added only after 6.0.0.beta1
|
18
|
-
unless ActionCable::Channel.respond_to?(:serialize_broadcasting)
|
18
|
+
unless ActionCable::Channel::Base.respond_to?(:serialize_broadcasting)
|
19
19
|
refine ActionCable::Channel::Broadcasting::ClassMethods do
|
20
20
|
def broadcasting_for(model)
|
21
21
|
super([channel_name, model])
|
@@ -2,25 +2,38 @@
|
|
2
2
|
|
3
3
|
require "action-cable-testing"
|
4
4
|
require "rspec/rails"
|
5
|
-
require "rspec/rails/example/channel_example_group"
|
6
|
-
require "rspec/rails/matchers/action_cable"
|
7
|
-
require "rspec/rails/shared_contexts/action_cable"
|
8
5
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
6
|
+
if RSpec::Rails::FeatureCheck.respond_to?(:has_action_cable_testing?)
|
7
|
+
warn <<~MSG
|
8
|
+
You're using RSpec with Action Cable support.
|
9
|
+
|
10
|
+
You can remove `require "action_cable/testing/rspec"` from your RSpec setup.
|
11
|
+
|
12
|
+
NOTE: if you use Action Cable shared contexts ("action_cable:async", "action_cable:inline", etc.)
|
13
|
+
you still need to use the gem and add `require "rspec/rails/shared_contexts/action_cable"`.
|
14
|
+
MSG
|
15
|
+
else
|
16
|
+
require "rspec/rails/example/channel_example_group"
|
17
|
+
require "rspec/rails/matchers/action_cable"
|
18
|
+
|
19
|
+
module RSpec # :nodoc:
|
20
|
+
module Rails
|
21
|
+
module FeatureCheck
|
22
|
+
module_function
|
23
|
+
def has_action_cable_testing?
|
24
|
+
defined?(::ActionCable)
|
25
|
+
end
|
26
|
+
end
|
17
27
|
|
18
|
-
|
28
|
+
self::DIRECTORY_MAPPINGS[:channel] = %w[spec channels]
|
29
|
+
end
|
19
30
|
end
|
20
|
-
end
|
21
31
|
|
22
|
-
RSpec.configure do |config|
|
23
|
-
|
24
|
-
|
32
|
+
RSpec.configure do |config|
|
33
|
+
if defined?(ActionCable)
|
34
|
+
config.include RSpec::Rails::ChannelExampleGroup, type: :channel
|
35
|
+
end
|
25
36
|
end
|
26
37
|
end
|
38
|
+
|
39
|
+
require "rspec/rails/shared_contexts/action_cable"
|
@@ -1,5 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "action_cable/testing/rails_six"
|
4
|
+
using ActionCable::Testing::Rails6
|
5
|
+
|
3
6
|
module ActionCable
|
4
7
|
# Provides helper methods for testing Action Cable broadcasting
|
5
8
|
module TestHelper
|
@@ -144,7 +147,7 @@ module ActionCable
|
|
144
147
|
channel ||= @subscription
|
145
148
|
return target unless channel && channel.respond_to?(:channel_name)
|
146
149
|
|
147
|
-
channel.broadcasting_for(
|
150
|
+
channel.broadcasting_for(target)
|
148
151
|
end
|
149
152
|
|
150
153
|
def warn_deprecated_channel!
|
@@ -1,5 +1,8 @@
|
|
1
1
|
# rubocop: disable Style/FrozenStringLiteralComment
|
2
2
|
|
3
|
+
require "action_cable/testing/rails_six"
|
4
|
+
using ActionCable::Testing::Rails6
|
5
|
+
|
3
6
|
module RSpec
|
4
7
|
module Rails
|
5
8
|
module Matchers
|
@@ -101,7 +104,7 @@ module RSpec
|
|
101
104
|
@target
|
102
105
|
else
|
103
106
|
check_channel_presence
|
104
|
-
@channel.broadcasting_for(
|
107
|
+
@channel.broadcasting_for(@target)
|
105
108
|
end
|
106
109
|
end
|
107
110
|
|
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.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Dementyev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actioncable
|
@@ -128,14 +128,14 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version:
|
131
|
+
version: 0.68.0
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
138
|
+
version: 0.68.0
|
139
139
|
description: Testing utils for Action Cable
|
140
140
|
email:
|
141
141
|
- dementiev.vm@gmail.com
|
@@ -178,15 +178,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
178
178
|
requirements:
|
179
179
|
- - ">="
|
180
180
|
- !ruby/object:Gem::Version
|
181
|
-
version: 2.
|
181
|
+
version: 2.4.0
|
182
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
183
|
requirements:
|
184
184
|
- - ">="
|
185
185
|
- !ruby/object:Gem::Version
|
186
186
|
version: '0'
|
187
187
|
requirements: []
|
188
|
-
|
189
|
-
rubygems_version: 2.7.6
|
188
|
+
rubygems_version: 3.0.4
|
190
189
|
signing_key:
|
191
190
|
specification_version: 4
|
192
191
|
summary: Testing utils for Action Cable
|