stimulus_reflex_testing 0.1.0 → 0.2.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/README.md +4 -2
- data/lib/stimulus_reflex/test_case.rb +10 -2
- data/lib/stimulus_reflex/test_reflex_patches.rb +18 -0
- data/lib/stimulus_reflex_testing/version.rb +1 -1
- data/stimulus_reflex_testing.gemspec +8 -3
- metadata +22 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aded655e92f21ce9ec1f85cb2311f74b6fd02e06d41344ce9db9fb9fca537c87
|
4
|
+
data.tar.gz: 1bc016eda544a5cd803ddca20b117f51bc9dbf6b7985a950a1818be30483e1e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b859e93f0477236c2f91bb7628803dd9691f980fbc3db9ccfd2f4a4f5d4589d3e0a64422c38f9fbcc9179163ed25421af15eec609659d89045a06ce738273bf8
|
7
|
+
data.tar.gz: 5b213edaa6a0ca6274535ee2f756e59a17225fd509428c4e32b046c277a57b4a09d9bc4f5c5f4940bd8e8d92eb70c87b1ed82adc78cb351ebf528469c027e438
|
data/README.md
CHANGED
@@ -18,7 +18,7 @@ Things we'd like to add/improve on:
|
|
18
18
|
Add this line to your application's Gemfile:
|
19
19
|
|
20
20
|
```ruby
|
21
|
-
gem 'stimulus_reflex_testing'
|
21
|
+
gem 'stimulus_reflex_testing', require: false
|
22
22
|
```
|
23
23
|
|
24
24
|
### Using 5.2 or below? Or using a version of RSpec Rails lower than 4?
|
@@ -26,7 +26,7 @@ gem 'stimulus_reflex_testing'
|
|
26
26
|
Both Rails 6 and RSpec Rails 4 introduce the `action-cable-testing` library. If you're using Rails 5.2 and a version of RSpec Rails lower than 4, include the `action-cable-testing` gem in your Gemfile.
|
27
27
|
|
28
28
|
```ruby
|
29
|
-
gem 'stimulus_reflex_testing'
|
29
|
+
gem 'stimulus_reflex_testing', require: false
|
30
30
|
gem 'action-cable-testing'
|
31
31
|
```
|
32
32
|
|
@@ -110,6 +110,8 @@ class PostReflex < ApplicationReflex
|
|
110
110
|
end
|
111
111
|
|
112
112
|
# spec/reflexes/post_reflex_spec.rb
|
113
|
+
require 'rails_helper'
|
114
|
+
|
113
115
|
RSpec.describe PostReflex, type: :reflex do
|
114
116
|
let(:post) { create(:post) }
|
115
117
|
let(:reflex) { build_reflex(url: edit_post_url(post)) }
|
@@ -3,12 +3,20 @@ require "active_support/test_case"
|
|
3
3
|
|
4
4
|
class StimulusReflex::TestCase < ActiveSupport::TestCase
|
5
5
|
class TestChannel < ActionCable::Channel::TestCase
|
6
|
-
|
6
|
+
delegate :env, to: :connection
|
7
7
|
|
8
8
|
def initialize(connection_opts = {})
|
9
9
|
super("StimulusReflex::Channel")
|
10
10
|
@connection = stub_connection(connection_opts.merge(env: {}))
|
11
11
|
end
|
12
|
+
|
13
|
+
def stream_name
|
14
|
+
ids = connection.identifiers.map { |identifier| connection.send(identifier).try(:id) || connection.send(identifier) }
|
15
|
+
[
|
16
|
+
"StimulusReflex::Channel",
|
17
|
+
ids.select(&:present?).join(";")
|
18
|
+
].select(&:present?).join(":")
|
19
|
+
end
|
12
20
|
end
|
13
21
|
|
14
22
|
module Behavior
|
@@ -24,7 +32,7 @@ class StimulusReflex::TestCase < ActiveSupport::TestCase
|
|
24
32
|
element = opts.fetch(:element, StimulusReflex::Element.new)
|
25
33
|
|
26
34
|
self.class.reflex_class.new(
|
27
|
-
channel, element: element, url: opts.dig(:url), params: opts.fetch(:params, {})
|
35
|
+
channel, element: element, url: opts.dig(:url), method_name: opts.dig(:method_name), params: opts.fetch(:params, {})
|
28
36
|
)
|
29
37
|
end
|
30
38
|
end
|
@@ -6,6 +6,24 @@ module StimulusReflex::TestReflexPatches
|
|
6
6
|
def run(method_name, *args)
|
7
7
|
process(method_name, *args)
|
8
8
|
end
|
9
|
+
|
10
|
+
def cable_ready
|
11
|
+
@cable_ready ||= FableReady.new
|
12
|
+
end
|
13
|
+
|
14
|
+
class FableReady
|
15
|
+
def [](key)
|
16
|
+
self
|
17
|
+
end
|
18
|
+
|
19
|
+
def method_missing(*)
|
20
|
+
true || super
|
21
|
+
end
|
22
|
+
|
23
|
+
def respond_to_missing?(*)
|
24
|
+
true
|
25
|
+
end
|
26
|
+
end
|
9
27
|
end
|
10
28
|
|
11
29
|
StimulusReflex::Reflex.include(StimulusReflex::TestReflexPatches)
|
@@ -3,14 +3,17 @@ require_relative "lib/stimulus_reflex_testing/version"
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "stimulus_reflex_testing"
|
5
5
|
spec.version = StimulusReflexTesting::VERSION
|
6
|
-
spec.authors = ["Jason Charnes"
|
7
|
-
spec.email = ["jason@thecharnes.com"
|
6
|
+
spec.authors = ["Jason Charnes"]
|
7
|
+
spec.email = ["jason@thecharnes.com"]
|
8
8
|
|
9
|
-
spec.summary = "
|
9
|
+
spec.summary = "Write a short summary, because RubyGems requires one."
|
10
|
+
spec.description = "Write a longer description or delete this line."
|
10
11
|
spec.homepage = "https://github.com/podia/stimulus_reflex_testing"
|
11
12
|
spec.license = "MIT"
|
12
13
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
13
14
|
|
15
|
+
# spec.metadata["allowed_push_host"] = "Set to 'http://mygemserver.com'"
|
16
|
+
|
14
17
|
spec.metadata["homepage_uri"] = spec.homepage
|
15
18
|
spec.metadata["source_code_uri"] = spec.homepage
|
16
19
|
# spec.metadata["changelog_uri"] = "Put your gem's CHANGELOG.md URL here."
|
@@ -23,4 +26,6 @@ Gem::Specification.new do |spec|
|
|
23
26
|
spec.bindir = "exe"
|
24
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
28
|
spec.require_paths = ["lib"]
|
29
|
+
|
30
|
+
spec.add_dependency "stimulus_reflex"
|
26
31
|
end
|
metadata
CHANGED
@@ -1,22 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stimulus_reflex_testing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Charnes
|
8
|
-
|
9
|
-
- Basil Khan
|
10
|
-
autorequire:
|
8
|
+
autorequire:
|
11
9
|
bindir: exe
|
12
10
|
cert_chain: []
|
13
|
-
date:
|
14
|
-
dependencies:
|
15
|
-
|
11
|
+
date: 2021-02-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: stimulus_reflex
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: Write a longer description or delete this line.
|
16
28
|
email:
|
17
29
|
- jason@thecharnes.com
|
18
|
-
- jamie@ideasasylum.com
|
19
|
-
- basil@podia.com
|
20
30
|
executables: []
|
21
31
|
extensions: []
|
22
32
|
extra_rdoc_files: []
|
@@ -46,7 +56,7 @@ licenses:
|
|
46
56
|
metadata:
|
47
57
|
homepage_uri: https://github.com/podia/stimulus_reflex_testing
|
48
58
|
source_code_uri: https://github.com/podia/stimulus_reflex_testing
|
49
|
-
post_install_message:
|
59
|
+
post_install_message:
|
50
60
|
rdoc_options: []
|
51
61
|
require_paths:
|
52
62
|
- lib
|
@@ -62,7 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
72
|
version: '0'
|
63
73
|
requirements: []
|
64
74
|
rubygems_version: 3.0.3
|
65
|
-
signing_key:
|
75
|
+
signing_key:
|
66
76
|
specification_version: 4
|
67
|
-
summary:
|
77
|
+
summary: Write a short summary, because RubyGems requires one.
|
68
78
|
test_files: []
|