rspec-json_api 1.2.0 → 1.2.1

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: 926364f56a7d6913ba3ffc9f3247268727e8510cae6941aa6918f3101c3ecd27
4
- data.tar.gz: 272e73fbd9562c005fdb1d3ac50e17cee84aa22e8e0383d0eb15d2d6606dd4c7
3
+ metadata.gz: 2b58959b3880f31b8098ee0183aee6e254043f7566db77bd242c590ee2f21d72
4
+ data.tar.gz: 33a0cd48bf51713452ed3bbad1c1b576c3c8d1fa3e90a9696ffa8085e6aa7173
5
5
  SHA512:
6
- metadata.gz: 4be67b6d2146f39576b7766e7dc9eeda0ea7530f63e97e5cbb503424d3e95a0b7607e798f09acee83efeadde2e504df74b1dfcd3678082b518024c0d70917066
7
- data.tar.gz: 4b723f4a170f36e563e7663c7e22286850ab60f376bd166db4a76476dc2faa3ca08fe055713419498657c5c52f4b6c609e3a8e27fba80c913ef5495ce0ed7932
6
+ metadata.gz: c9931ef0406562f563346e91f413c7ec65872c6397b97a2c4b61e80816cf7c52ca48a1b55dfce43524e65750ae971d9c61a2e70e2e2b82747eb3b570c8bb2425
7
+ data.tar.gz: 822fc1a4ab0431a4f1f75ba4c4f2d3a73378fc4971e4380b13557f0679a757f679ea8167696a1cdaa2a4b0c37ed5f6953d6029fd7186634d8232951ac3b19fc2
data/Gemfile CHANGED
@@ -9,3 +9,4 @@ gemspec
9
9
  gem "activesupport", "~> 6.1", ">= 6.1.4.1"
10
10
  gem "rake", "~> 13.0", ">= 13.0.6"
11
11
  gem "rspec-rails", "~> 5.0", ">= 5.0.2"
12
+ gem "rubocop"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rspec-json_api (1.1.1)
4
+ rspec-json_api (1.2.1)
5
5
  activesupport (>= 6.1.4.1)
6
6
  rails (>= 6.1.4.1)
7
7
  rspec-rails (>= 5.0.2)
@@ -68,6 +68,8 @@ GEM
68
68
  minitest (>= 5.1)
69
69
  tzinfo (~> 2.0)
70
70
  zeitwerk (~> 2.3)
71
+ ast (2.4.2)
72
+ base64 (0.1.1)
71
73
  builder (3.2.4)
72
74
  concurrent-ruby (1.1.9)
73
75
  crass (1.0.6)
@@ -78,6 +80,8 @@ GEM
78
80
  activesupport (>= 6.1)
79
81
  i18n (1.9.1)
80
82
  concurrent-ruby (~> 1.0)
83
+ json (2.6.3)
84
+ language_server-protocol (3.17.0.3)
81
85
  loofah (2.13.0)
82
86
  crass (~> 1.0.2)
83
87
  nokogiri (>= 1.5.9)
@@ -104,6 +108,10 @@ GEM
104
108
  nokogiri (1.13.1)
105
109
  mini_portile2 (~> 2.7.0)
106
110
  racc (~> 1.4)
111
+ parallel (1.23.0)
112
+ parser (3.2.2.3)
113
+ ast (~> 2.4.1)
114
+ racc
107
115
  racc (1.6.0)
108
116
  rack (2.2.3)
109
117
  rack-test (1.1.0)
@@ -134,7 +142,10 @@ GEM
134
142
  method_source
135
143
  rake (>= 0.13)
136
144
  thor (~> 1.0)
145
+ rainbow (3.1.1)
137
146
  rake (13.0.6)
147
+ regexp_parser (2.8.1)
148
+ rexml (3.2.6)
138
149
  rspec-core (3.10.2)
139
150
  rspec-support (~> 3.10.0)
140
151
  rspec-expectations (3.10.2)
@@ -152,6 +163,21 @@ GEM
152
163
  rspec-mocks (~> 3.10)
153
164
  rspec-support (~> 3.10)
154
165
  rspec-support (3.10.3)
166
+ rubocop (1.56.3)
167
+ base64 (~> 0.1.1)
168
+ json (~> 2.3)
169
+ language_server-protocol (>= 3.17.0)
170
+ parallel (~> 1.10)
171
+ parser (>= 3.2.2.3)
172
+ rainbow (>= 2.2.2, < 4.0)
173
+ regexp_parser (>= 1.8, < 3.0)
174
+ rexml (>= 3.2.5, < 4.0)
175
+ rubocop-ast (>= 1.28.1, < 2.0)
176
+ ruby-progressbar (~> 1.7)
177
+ unicode-display_width (>= 2.4.0, < 3.0)
178
+ rubocop-ast (1.29.0)
179
+ parser (>= 3.2.1.0)
180
+ ruby-progressbar (1.13.0)
155
181
  sprockets (4.1.1)
156
182
  concurrent-ruby (~> 1.0)
157
183
  rack (> 1, < 3)
@@ -163,6 +189,7 @@ GEM
163
189
  timeout (0.4.1)
164
190
  tzinfo (2.0.4)
165
191
  concurrent-ruby (~> 1.0)
192
+ unicode-display_width (2.4.2)
166
193
  websocket-driver (0.7.6)
167
194
  websocket-extensions (>= 0.1.0)
168
195
  websocket-extensions (0.1.5)
@@ -177,6 +204,7 @@ DEPENDENCIES
177
204
  rake (~> 13.0, >= 13.0.6)
178
205
  rspec-json_api!
179
206
  rspec-rails (~> 5.0, >= 5.0.2)
207
+ rubocop
180
208
 
181
209
  BUNDLED WITH
182
210
  2.2.19
@@ -8,17 +8,13 @@ module RSpec
8
8
  def compare(actual, expected)
9
9
  if interface?(expected)
10
10
  actual.all? do |actual_elem|
11
- # Compare actual and expected schema
12
11
  return false unless actual_elem.deep_keys == expected[0].deep_keys
13
12
 
14
13
  CompareHash.compare(actual_elem, expected[0])
15
14
  end
16
15
  else
17
16
  actual.each_with_index.all? do |actual_elem, index|
18
- # Compare actual and expected schema
19
- return false unless actual[index].deep_keys == expected[index].deep_keys
20
-
21
- CompareHash.compare(actual_elem, expected[index])
17
+ compare_primitive_type_element(actual, expected, actual_elem, index)
22
18
  end
23
19
  end
24
20
  end
@@ -28,6 +24,16 @@ module RSpec
28
24
  def interface?(expected_value)
29
25
  expected_value.size == 1 && expected_value[0].is_a?(Hash)
30
26
  end
27
+
28
+ def compare_primitive_type_element(actual, expected, actual_elem, index)
29
+ if actual[index].respond_to?(:deep_keys) && expected[index].respond_to?(:deep_keys)
30
+ return false unless actual[index].deep_keys == expected[index].deep_keys
31
+
32
+ CompareHash.compare(actual_elem, expected[index])
33
+ else
34
+ CompareHash.compare_values(actual[index], expected[index])
35
+ end
36
+ end
31
37
  end
32
38
  end
33
39
  end
@@ -15,18 +15,16 @@ module RSpec
15
15
  compare_key_paths_and_values(keys, actual, expected)
16
16
  end
17
17
 
18
- private
19
-
20
18
  def compare_key_paths_and_values(keys, actual, expected)
21
19
  keys.all? do |key_path|
22
20
  actual_value = actual.dig(*key_path)
23
21
  expected_value = expected.dig(*key_path)
24
22
 
25
- compare_hash_values(actual_value, expected_value)
23
+ compare_values(actual_value, expected_value)
26
24
  end
27
25
  end
28
26
 
29
- def compare_hash_values(actual_value, expected_value)
27
+ def compare_values(actual_value, expected_value)
30
28
  case expected_value
31
29
  when Class
32
30
  compare_class(actual_value, expected_value)
@@ -37,7 +35,7 @@ module RSpec
37
35
  when Array
38
36
  compare_array(actual_value, expected_value)
39
37
  else
40
- compare_value(actual_value, expected_value)
38
+ compare_simple_value(actual_value, expected_value)
41
39
  end
42
40
  end
43
41
 
@@ -63,7 +61,7 @@ module RSpec
63
61
  when :type
64
62
  compare_class(actual_value, condition_value)
65
63
  when :value
66
- compare_value(actual_value, condition_value)
64
+ compare_simple_value(actual_value, condition_value)
67
65
  when :inclusion
68
66
  condition_value.include?(actual_value)
69
67
  when :min
@@ -95,12 +93,12 @@ module RSpec
95
93
  return false if actual_value&.size != expected_value&.size
96
94
 
97
95
  expected_value.each_with_index.all? do |elem, index|
98
- elem.is_a?(Hash) ? compare(actual_value[index], elem) : compare_value(actual_value[index], elem)
96
+ elem.is_a?(Hash) ? compare(actual_value[index], elem) : compare_simple_value(actual_value[index], elem)
99
97
  end
100
98
  end
101
99
  end
102
100
 
103
- def compare_value(actual_value, expected_value)
101
+ def compare_simple_value(actual_value, expected_value)
104
102
  actual_value == expected_value
105
103
  end
106
104
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSpec
4
4
  module JsonApi
5
- VERSION = "1.2.0"
5
+ VERSION = "1.2.1"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-json_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Gajowiak
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-31 00:00:00.000000000 Z
11
+ date: 2024-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport