rspec-json_api 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
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