gruf-rspec 1.0.0 → 1.1.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 +9 -0
- data/README.md +1 -1
- data/gruf-rspec.gemspec +6 -5
- data/lib/autoloader.rb +8 -0
- data/lib/gruf/rspec/configuration.rb +1 -1
- data/lib/gruf/rspec/version.rb +1 -1
- data/lib/gruf/rspec.rb +9 -24
- metadata +20 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fce9703d305d825ff8a34037886221e7756f7c591923f4d4168272b8e53a8698
|
4
|
+
data.tar.gz: 1bf89f95cbe28626627a154ba3565f98ade017267c161a9841f348e45adfd410
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e91dca7f893e5b02e16482922e7ce012180fcb14e5e9d2755dfc7c3f8432f5a033d1d74e0756f1606ea266bad7ab68363e67c9c6e7ef3be634884298b5c89683
|
7
|
+
data.tar.gz: d5ce025860b0ccec289ed2e7907c4d74397e4a73699d1131521a29214889f9ef285c2add5ba2e6c1ff4345197a1ce6d9df7c67527e8f1690ecda5ef2bd8457cf
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,15 @@ Changelog for the gruf-rspec gem.
|
|
2
2
|
|
3
3
|
### Pending release
|
4
4
|
|
5
|
+
### 1.1.0
|
6
|
+
|
7
|
+
- Add support for Ruby 3.4
|
8
|
+
- Drop support for Ruby 3.0, 3.1 (EOL)
|
9
|
+
|
10
|
+
### 1.0.1
|
11
|
+
|
12
|
+
- [#23] Only depend on rspec-core/rspec-expectations
|
13
|
+
|
5
14
|
### 1.0.0
|
6
15
|
|
7
16
|
- Add support for Ruby 3.2, 3.3
|
data/README.md
CHANGED
@@ -114,7 +114,7 @@ Note that when using `with_serialized`, you _must_ pass the block with `{ }`, no
|
|
114
114
|
### RSpec Controller Matcher Configuration
|
115
115
|
|
116
116
|
By default, the type matcher for Gruf controllers matches in `/spec/rpc`. You can customize this by configuring it
|
117
|
-
in the `Gruf::Rspec`
|
117
|
+
in the `Gruf::Rspec` configuration block like so:
|
118
118
|
|
119
119
|
```ruby
|
120
120
|
Gruf::Rspec.configure do |c|
|
data/gruf-rspec.gemspec
CHANGED
@@ -28,14 +28,15 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.description = 'RSpec assistance library for gruf, including testing helpers'
|
29
29
|
spec.homepage = 'https://github.com/bigcommerce/gruf-rspec'
|
30
30
|
|
31
|
-
spec.required_ruby_version = '>= 3.
|
31
|
+
spec.required_ruby_version = '>= 3.2', '< 4'
|
32
32
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
33
33
|
|
34
34
|
spec.files = Dir['README.md', 'CHANGELOG.md', 'CODE_OF_CONDUCT.md', 'lib/**/*', 'gruf-rspec.gemspec']
|
35
35
|
spec.require_paths = %w[lib]
|
36
36
|
|
37
|
-
spec.
|
38
|
-
spec.
|
39
|
-
spec.
|
40
|
-
spec.
|
37
|
+
spec.add_dependency 'gruf', '~> 2.5', '>= 2.5.1'
|
38
|
+
spec.add_dependency 'rake', '>= 12.3'
|
39
|
+
spec.add_dependency 'rspec-core', '>= 3.8'
|
40
|
+
spec.add_dependency 'rspec-expectations', '>= 3.8'
|
41
|
+
spec.add_dependency 'zeitwerk', '>= 2'
|
41
42
|
end
|
data/lib/autoloader.rb
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# use Zeitwerk to lazily autoload all the files in the lib directory
|
4
|
+
require 'zeitwerk'
|
5
|
+
lib_path = __dir__.to_s
|
6
|
+
loader = Zeitwerk::Loader.for_gem(warn_on_extra_files: false)
|
7
|
+
loader.ignore("#{lib_path}/gruf/rspec/railtie.rb")
|
8
|
+
loader.setup
|
data/lib/gruf/rspec/version.rb
CHANGED
data/lib/gruf/rspec.rb
CHANGED
@@ -15,26 +15,9 @@
|
|
15
15
|
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
16
16
|
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
17
17
|
#
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
GRUF_RSPEC_NAMESPACE = RSpec
|
22
|
-
GRUF_RSPEC_RUNNER = RSpec
|
23
|
-
rescue LoadError # old rspec compat
|
24
|
-
require 'spec'
|
25
|
-
GRUF_RSPEC_NAMESPACE = Spec
|
26
|
-
GRUF_RSPEC_RUNNER = Spec::Runner
|
27
|
-
end
|
28
|
-
|
29
|
-
# use Zeitwerk to lazily autoload all the files in the lib directory
|
30
|
-
require 'zeitwerk'
|
31
|
-
lib_path = File.dirname(__dir__)
|
32
|
-
loader = ::Zeitwerk::Loader.new
|
33
|
-
loader.tag = 'gruf-rspec'
|
34
|
-
loader.inflector = ::Zeitwerk::GemInflector.new(__FILE__)
|
35
|
-
loader.ignore("#{lib_path}/gruf/rspec/railtie.rb")
|
36
|
-
loader.push_dir(lib_path)
|
37
|
-
loader.setup
|
18
|
+
require_relative '../autoloader'
|
19
|
+
require 'rspec/core'
|
20
|
+
require 'rspec/expectations'
|
38
21
|
|
39
22
|
##
|
40
23
|
# Base gruf module
|
@@ -50,7 +33,7 @@ end
|
|
50
33
|
|
51
34
|
Gruf::Rspec.reset # initial reset
|
52
35
|
|
53
|
-
# Attempt to load railtie if we're in a
|
36
|
+
# Attempt to load railtie if we're in a Rails environment. This assists with autoloading in a Rails rspec context
|
54
37
|
begin
|
55
38
|
require 'rails'
|
56
39
|
rescue LoadError
|
@@ -58,13 +41,14 @@ rescue LoadError
|
|
58
41
|
end
|
59
42
|
require_relative 'rspec/railtie' if defined?(::Rails::Railtie)
|
60
43
|
|
61
|
-
|
44
|
+
RSpec.configure do |config|
|
62
45
|
config.include Gruf::Rspec::Helpers
|
63
46
|
|
64
47
|
config.define_derived_metadata(file_path: Regexp.new(Gruf::Rspec.rpc_spec_path)) do |metadata|
|
65
48
|
metadata[:type] = :gruf_controller
|
66
49
|
end
|
67
50
|
|
51
|
+
# rubocop:disable ThreadSafety/ClassInstanceVariable
|
68
52
|
config.before(:each, type: :gruf_controller) do
|
69
53
|
define_singleton_method :run_rpc do |method_name, request, active_call_options: {}, &block|
|
70
54
|
@gruf_controller = described_class.new(
|
@@ -87,9 +71,10 @@ GRUF_RSPEC_RUNNER.configure do |config|
|
|
87
71
|
@gruf_controller
|
88
72
|
end
|
89
73
|
end
|
74
|
+
# rubocop:enable ThreadSafety/ClassInstanceVariable
|
90
75
|
end
|
91
76
|
|
92
|
-
|
77
|
+
RSpec::Matchers.define :raise_rpc_error do |expected_error_class|
|
93
78
|
supports_block_expectations
|
94
79
|
|
95
80
|
def with_serialized(&block)
|
@@ -111,7 +96,7 @@ GRUF_RSPEC_NAMESPACE::Matchers.define :raise_rpc_error do |expected_error_class|
|
|
111
96
|
end
|
112
97
|
end
|
113
98
|
|
114
|
-
|
99
|
+
RSpec::Matchers.define :be_a_successful_rpc do |_|
|
115
100
|
match do |actual|
|
116
101
|
if !gruf_controller || actual.is_a?(GRPC::BadStatus) || actual.is_a?(GRPC::Core::CallError)
|
117
102
|
false
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gruf-rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shaun McCormick
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: gruf
|
@@ -45,7 +44,21 @@ dependencies:
|
|
45
44
|
- !ruby/object:Gem::Version
|
46
45
|
version: '12.3'
|
47
46
|
- !ruby/object:Gem::Dependency
|
48
|
-
name: rspec
|
47
|
+
name: rspec-core
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '3.8'
|
53
|
+
type: :runtime
|
54
|
+
prerelease: false
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '3.8'
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rspec-expectations
|
49
62
|
requirement: !ruby/object:Gem::Requirement
|
50
63
|
requirements:
|
51
64
|
- - ">="
|
@@ -83,6 +96,7 @@ files:
|
|
83
96
|
- CODE_OF_CONDUCT.md
|
84
97
|
- README.md
|
85
98
|
- gruf-rspec.gemspec
|
99
|
+
- lib/autoloader.rb
|
86
100
|
- lib/gruf/rspec.rb
|
87
101
|
- lib/gruf/rspec/authentication_hydrators/base.rb
|
88
102
|
- lib/gruf/rspec/authentication_hydrators/basic.rb
|
@@ -97,7 +111,6 @@ licenses:
|
|
97
111
|
- MIT
|
98
112
|
metadata:
|
99
113
|
rubygems_mfa_required: 'true'
|
100
|
-
post_install_message:
|
101
114
|
rdoc_options: []
|
102
115
|
require_paths:
|
103
116
|
- lib
|
@@ -105,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
118
|
requirements:
|
106
119
|
- - ">="
|
107
120
|
- !ruby/object:Gem::Version
|
108
|
-
version: '3.
|
121
|
+
version: '3.2'
|
109
122
|
- - "<"
|
110
123
|
- !ruby/object:Gem::Version
|
111
124
|
version: '4'
|
@@ -115,8 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
128
|
- !ruby/object:Gem::Version
|
116
129
|
version: '0'
|
117
130
|
requirements: []
|
118
|
-
rubygems_version: 3.
|
119
|
-
signing_key:
|
131
|
+
rubygems_version: 3.6.7
|
120
132
|
specification_version: 4
|
121
133
|
summary: RSpec assistance library for gruf
|
122
134
|
test_files: []
|