rspec-protobuf 0.2.0 → 0.2.2

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: ff057c1fafc371beb4b2d2890300d27ef142158299190715fb9bef3891a24ec6
4
- data.tar.gz: a9fa3d68d62d37fe63f7b556e05f221afe0de2ebe34bbf47bd91d313e04d06b5
3
+ metadata.gz: 9715606ee55a551b67daf4f76770e03e02c39235df6391dabcfb4e652f66573b
4
+ data.tar.gz: d94dc7b32595629de99af8174117019af34916e3be13b8ac7c341c3ad1379462
5
5
  SHA512:
6
- metadata.gz: b5a7bd6137681147eeb3d97c9e8c162a2e71e7de3d6b2d0f1d4cac95449ea179b6e784c2b428f42fb4dc5912eb19ccbbfea5d1caec6864d7b21d339cb8d23c4e
7
- data.tar.gz: a8bb57417121161efdcb3f0b876b93e1c5da578ab90c40d96617cb1eb8c04719d5a372d5edcf294d8edbbea2628d67312a65b94d43329b2bc2a33f3a5319690a
6
+ metadata.gz: 3e20abb11a4f1f56bde4fcc953d492d57b79cb434696a0a4c7923fb818a7c021ef26a5b058b2af8df13bf2a6256518559e21b78f334d7db0073adb84317531bc
7
+ data.tar.gz: 170d177431f45d5e0e5584ac775f2480aa3975e64aaaf626248d2e4dd80f7eb22feaa3aed7a9a3159b176a23b573a53f31f168045487a669a8831c8e0ab65314
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ### v0.2.2 (2022-12-15)
2
+ - dependabot and lockfile
3
+ - simplify dependencies
4
+
5
+ ### v0.2.1 (2022-11-16)
6
+ - fix enum matching
7
+
1
8
  ### v0.2.0 (2022-11-09)
2
9
  - rspec differ
3
10
  - failure message and test coverage
data/Gemfile.lock ADDED
@@ -0,0 +1,48 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rspec-protobuf (0.2.1)
5
+ google-protobuf (>= 3)
6
+ rspec-expectations (>= 3)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ byebug (11.1.3)
12
+ codecov (0.6.0)
13
+ simplecov (>= 0.15, < 0.22)
14
+ diff-lcs (1.5.0)
15
+ docile (1.4.0)
16
+ google-protobuf (3.21.12)
17
+ rspec (3.12.0)
18
+ rspec-core (~> 3.12.0)
19
+ rspec-expectations (~> 3.12.0)
20
+ rspec-mocks (~> 3.12.0)
21
+ rspec-core (3.12.0)
22
+ rspec-support (~> 3.12.0)
23
+ rspec-expectations (3.12.0)
24
+ diff-lcs (>= 1.2.0, < 2.0)
25
+ rspec-support (~> 3.12.0)
26
+ rspec-mocks (3.12.1)
27
+ diff-lcs (>= 1.2.0, < 2.0)
28
+ rspec-support (~> 3.12.0)
29
+ rspec-support (3.12.0)
30
+ simplecov (0.21.2)
31
+ docile (~> 1.1)
32
+ simplecov-html (~> 0.11)
33
+ simplecov_json_formatter (~> 0.1)
34
+ simplecov-html (0.12.3)
35
+ simplecov_json_formatter (0.1.4)
36
+
37
+ PLATFORMS
38
+ ruby
39
+
40
+ DEPENDENCIES
41
+ byebug
42
+ codecov
43
+ rspec (>= 3)
44
+ rspec-protobuf!
45
+ simplecov
46
+
47
+ BUNDLED WITH
48
+ 2.3.17
@@ -11,9 +11,18 @@ module RSpec
11
11
  # ensure all enumerated attributes are present
12
12
  return false unless expected_attrs.keys.all? { |attr| respond_to?(attr) }
13
13
 
14
+ fields = {}
15
+ self.class.descriptor.each { |f| fields[f.name.to_sym] = f }
16
+
14
17
  # check expected attribute matches
15
18
  expected_attrs.all? do |expected_attr, expected_value|
16
- actual_value = send(expected_attr)
19
+ field = fields[expected_attr]
20
+ actual_value = field.get(self)
21
+
22
+ # convert enum to int value to match input type
23
+ if field.type == :enum && expected_value.is_a?(Integer)
24
+ actual_value = field.subtype.lookup_name(actual_value)
25
+ end
17
26
 
18
27
  matches = expected_value === actual_value
19
28
 
@@ -41,7 +50,15 @@ module RSpec
41
50
  if actual_value.is_a?(Google::Protobuf::MessageExts) && expected_value.is_a?(Hash)
42
51
  actual_value.match?(**expected_value)
43
52
  else
44
- attrs.fetch(field.name.to_sym, field.default) === actual_value
53
+ # fall back to default value
54
+ expected_value = field.default unless attrs.key?(field.name.to_sym)
55
+
56
+ # convert enum to int value to match input type
57
+ if field.type == :enum && expected_value.is_a?(Integer)
58
+ actual_value = field.subtype.lookup_name(actual_value)
59
+ end
60
+
61
+ expected_value === actual_value
45
62
  end
46
63
  end
47
64
  end
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
2
  module Protobuf
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.2"
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  require "google/protobuf"
2
- require "rspec"
2
+ require "rspec/expectations"
3
3
  require "rspec/protobuf/refinements"
4
4
  require "rspec/protobuf/version"
5
5
 
@@ -15,9 +15,10 @@ Gem::Specification.new do |s|
15
15
  s.files = `git ls-files * ':!:spec'`.split("\n")
16
16
 
17
17
  s.add_dependency "google-protobuf", ">= 3"
18
- s.add_dependency "rspec", ">= 3"
18
+ s.add_dependency "rspec-expectations", ">= 3"
19
19
 
20
20
  s.add_development_dependency "byebug"
21
21
  s.add_development_dependency "codecov"
22
+ s.add_development_dependency "rspec", ">= 3"
22
23
  s.add_development_dependency "simplecov"
23
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-protobuf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Pepper
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-09 00:00:00.000000000 Z
11
+ date: 2022-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: rspec-expectations
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '3'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '3'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: simplecov
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -88,6 +102,7 @@ extra_rdoc_files: []
88
102
  files:
89
103
  - CHANGELOG.md
90
104
  - Gemfile
105
+ - Gemfile.lock
91
106
  - LICENSE.txt
92
107
  - README.md
93
108
  - lib/rspec-protobuf.rb