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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6291a6cf9290f5a961f9fe4aaa14cab581d4e6f8496165d9d615554c31aadf2a
4
- data.tar.gz: eed0811eb88ff1a57d02b6c03e523eef23859b69b1d9cff9362cdd08c6175d78
3
+ metadata.gz: fce9703d305d825ff8a34037886221e7756f7c591923f4d4168272b8e53a8698
4
+ data.tar.gz: 1bf89f95cbe28626627a154ba3565f98ade017267c161a9841f348e45adfd410
5
5
  SHA512:
6
- metadata.gz: 235f0f22e3bfde97bb808c683848c5a5ec396c9d4b194b2aa6071c0a251903365344ba0e6d9de05614ebbed9dc634172dd0b7484f88bce2966eb523bf15487ec
7
- data.tar.gz: 7cb35d4584731c5f733de85260feb13154cb9f85b714ce6e19e88054d002f83fc0a20dcb7d696b37b54e56759d013ce30419ab4028ce0a0589b69e7b0e3e2859
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` confiugration block like so:
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.0', '< 4'
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.add_runtime_dependency 'gruf', '~> 2.5', '>= 2.5.1'
38
- spec.add_runtime_dependency 'rake', '>= 12.3'
39
- spec.add_runtime_dependency 'rspec', '>= 3.8'
40
- spec.add_runtime_dependency 'zeitwerk', '>= 2'
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
@@ -70,7 +70,7 @@ module Gruf
70
70
  #
71
71
  def reset
72
72
  VALID_CONFIG_KEYS.each do |k, v|
73
- send("#{k}=", v)
73
+ send(:"#{k}=", v)
74
74
  end
75
75
  self.rpc_spec_path = ::ENV.fetch('RPC_SPEC_PATH', DEFAULT_RSPEC_PATH).to_s
76
76
  options
@@ -17,6 +17,6 @@
17
17
  #
18
18
  module Gruf
19
19
  module Rspec
20
- VERSION = '1.0.0'
20
+ VERSION = '1.1.0'
21
21
  end
22
22
  end
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
- begin
19
- require 'rspec/core'
20
- require 'rspec/expectations'
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 rails environment. This assists with autoloading in a rails rspec context
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
- GRUF_RSPEC_RUNNER.configure do |config|
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
- GRUF_RSPEC_NAMESPACE::Matchers.define :raise_rpc_error do |expected_error_class|
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
- GRUF_RSPEC_NAMESPACE::Matchers.define :be_a_successful_rpc do |_|
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.0.0
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: 2024-02-05 00:00:00.000000000 Z
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.0'
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.5.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: []