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 +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +29 -1
- data/lib/rspec/json_api/compare_array.rb +11 -5
- data/lib/rspec/json_api/compare_hash.rb +6 -8
- data/lib/rspec/json_api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b58959b3880f31b8098ee0183aee6e254043f7566db77bd242c590ee2f21d72
|
4
|
+
data.tar.gz: 33a0cd48bf51713452ed3bbad1c1b576c3c8d1fa3e90a9696ffa8085e6aa7173
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9931ef0406562f563346e91f413c7ec65872c6397b97a2c4b61e80816cf7c52ca48a1b55dfce43524e65750ae971d9c61a2e70e2e2b82747eb3b570c8bb2425
|
7
|
+
data.tar.gz: 822fc1a4ab0431a4f1f75ba4c4f2d3a73378fc4971e4380b13557f0679a757f679ea8167696a1cdaa2a4b0c37ed5f6953d6029fd7186634d8232951ac3b19fc2
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rspec-json_api (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
|
-
|
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
|
-
|
23
|
+
compare_values(actual_value, expected_value)
|
26
24
|
end
|
27
25
|
end
|
28
26
|
|
29
|
-
def
|
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
|
-
|
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
|
-
|
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) :
|
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
|
101
|
+
def compare_simple_value(actual_value, expected_value)
|
104
102
|
actual_value == expected_value
|
105
103
|
end
|
106
104
|
|
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.
|
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-
|
11
|
+
date: 2024-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|