trailblazer-finder 0.70.0 → 0.80.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,417 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- module Trailblazer
6
- class Finder # rubocop:disable Metrics/ClassLength
7
- describe Base do
8
- def define_finder_class(&block)
9
- Class.new(Trailblazer::Finder) do
10
- class_eval(&block)
11
- end
12
- end
13
-
14
- def finder_class(default_entity = [], &block)
15
- define_finder_class do
16
- entity { default_entity }
17
-
18
- if block.nil?
19
- filter_by :value do |entity, _attribute, value|
20
- entity.select { |v| v == value }
21
- end
22
- else
23
- class_eval(&block)
24
- end
25
- end
26
- end
27
-
28
- def new_finder(default_entity = [], filter = {}, &block)
29
- finder_class(default_entity, &block).new params: filter
30
- end
31
-
32
- it "can have its #initialize method overwritten" do
33
- finder = new_finder do
34
- attr_reader :initialized
35
-
36
- alias_method :initialized?, :initialized
37
-
38
- def initialize(filter = {})
39
- @initialized = true
40
- super filter
41
- end
42
- end
43
-
44
- expect(finder).to be_initialized
45
- end
46
-
47
- it "can have multiple subclasses" do
48
- finder_1 = new_finder [1, 2, 3], filter: 1 do
49
- filter_by :filter do |entity, _attribute, value|
50
- entity.select { |v| v == value }
51
- end
52
- end
53
-
54
- finder_2 = new_finder [1, 2, 3], other_filter: 1 do
55
- filter_by :other_filter do |entity, _attribute, value|
56
- entity.reject { |v| v == value }
57
- end
58
- end
59
-
60
- expect(finder_1.result).not_to eq finder_2.result
61
- end
62
-
63
- describe ".result" do
64
- it "returns only the filtered finder results" do
65
- finder = new_finder [1, 2, 3], value: 1
66
- expect(finder.result).to eq [1]
67
- end
68
-
69
- it "can apply several filters" do
70
- values = [1, 2, 3, 4, 5, 6, 7]
71
- finder = new_finder values, bigger_than: 3, odd: true do
72
- filter_by :bigger_than do |entity, _attribute, value|
73
- entity.select { |v| v > value }
74
- end
75
-
76
- filter_by :odd do |entity, _attribute, value|
77
- entity.select(&:odd?) if value
78
- end
79
- end
80
-
81
- expect(finder.result).to eq [5, 7]
82
- end
83
-
84
- it "ignores invalid filters" do
85
- finder = new_finder [1, 2, 3], invalid: "filter_by"
86
- expect(finder.result).to eq [1, 2, 3]
87
- end
88
-
89
- it "can be overwritten by overwriting #fetch_result" do
90
- finder = new_finder [1, 2, 3], value: 1 do
91
- filter_by :value do |entity, _attribute, value|
92
- entity.select { |v| v == value }
93
- end
94
-
95
- def fetch_result
96
- super.map { |v| "~#{v}~" }
97
- end
98
- end
99
-
100
- expect(finder.result).to eq ["~1~"]
101
- end
102
-
103
- it "applies to default filters" do
104
- finder = new_finder [1, 2, 3], value: 1 do
105
- filter_by :value do |entity, _attribute, value|
106
- entity.select { |v| v == value }
107
- end
108
- end
109
- expect(finder.result).to eq [1]
110
- end
111
-
112
- it "shows the all results if no paging options are specified" do
113
- entity = [
114
- {id: 1, value: "Test 1"},
115
- {id: 2, value: "Test 2"},
116
- {id: 3, value: "Test 1"},
117
- {id: 4, value: "Test 4"},
118
- {id: 5, value: "Test 1"},
119
- {id: 6, value: "Test 1"},
120
- {id: 7, value: "Test 2"},
121
- {id: 8, value: "Test 1"},
122
- {id: 9, value: "Test 4"},
123
- {id: 10, value: "Test 1"}
124
- ]
125
-
126
- finder = new_finder entity, value_cont: "Test", sort: "id desc" do
127
- property :value, type: Types::String, sortable: true
128
- property :id, type: Types::Integer, sortable: true
129
- end
130
-
131
- expect(finder.count).to eq 10
132
- end
133
- end
134
-
135
- describe ".result?" do
136
- it "has a result" do
137
- finder = new_finder [1, 2, 3], value: 1 do
138
- filter_by :value do |entity, _attribute, value|
139
- entity.select { |v| v == value }
140
- end
141
- end
142
- expect(finder.result?).to eq true
143
- end
144
-
145
- it "has no result" do
146
- finder = new_finder [1, 2, 3], value: 4 do
147
- filter_by :value do |entity, _attribute, value|
148
- entity.select { |v| v == value }
149
- end
150
- end
151
- expect(finder.result?).to eq false
152
- end
153
- end
154
-
155
- describe ".count" do
156
- it "can apply several filters and have a correct count" do
157
- values = [1, 2, 3, 4, 5, 6, 7]
158
- finder = new_finder values, bigger_than: 3, odd: true do
159
- filter_by :bigger_than do |entity, _attribute, value|
160
- entity.select { |v| v > value }
161
- end
162
-
163
- filter_by :odd do |entity, _attribute, value|
164
- entity.select(&:odd?) if value
165
- end
166
- end
167
-
168
- expect(finder.count).to eq 2
169
- end
170
- end
171
-
172
- describe ".params" do
173
- it "shows the default parameters when none are given" do
174
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
175
- finder = new_finder entity do
176
- paging per_page: 2, min_per_page: 1, max_per_page: 5
177
- property :value, type: Types::String
178
- end
179
-
180
- expect(finder.params).to eq per_page: 2, page: 1, sort: nil
181
- end
182
-
183
- it "shows the parameters that are given" do
184
- entity = [
185
- {id: 1, value: "Test 1"},
186
- {id: 2, value: "Test 2"},
187
- {id: 3, value: "Test 1"},
188
- {id: 4, value: "Test 4"},
189
- {id: 5, value: "Test 1"}
190
- ]
191
-
192
- finder = new_finder entity, value_eq: "Test 1", sort: "id desc", page: 2 do
193
- paging per_page: 2, min_per_page: 1, max_per_page: 5
194
- property :value, type: Types::String, sortable: true
195
- property :id, type: Types::Integer, sortable: true
196
- end
197
-
198
- expect(finder.result.map { |n| n[:id] }).to eq [1]
199
- expect(finder.params).to eq value_eq: "Test 1", sort: "id desc", page: 2, per_page: 2
200
- end
201
- end
202
-
203
- describe ".sorting" do
204
- it "shows the sorters that have been applied on the result" do
205
- entity = [
206
- {id: 1, value: "Test 1"},
207
- {id: 2, value: "Test 2"},
208
- {id: 3, value: "Test 1"},
209
- {id: 4, value: "Test 4"},
210
- {id: 5, value: "Test 1"}
211
- ]
212
-
213
- finder = new_finder entity, value_eq: "Test 1", sort: "value asc, id desc", page: 2 do
214
- paging per_page: 2, min_per_page: 1, max_per_page: 5
215
- property :value, type: Types::String, sortable: true
216
- property :id, type: Types::Integer, sortable: true
217
- end
218
-
219
- expect(finder.params).to eq value_eq: "Test 1", sort: "value asc, id desc", page: 2, per_page: 2
220
- expect(finder.sorting).to eq "value asc, id desc"
221
- end
222
- end
223
-
224
- describe ".filters" do
225
- it "shows the filters that have been applied on the result" do
226
- entity = [
227
- {id: 1, value: "Test 1"},
228
- {id: 2, value: "Test 2"},
229
- {id: 3, value: "Test 1"},
230
- {id: 4, value: "Test 4"},
231
- {id: 5, value: "Test 1"}
232
- ]
233
-
234
- finder = new_finder entity, value_eq: "Test 1", sort: "value asc, id desc", page: 2 do
235
- paging per_page: 2, min_per_page: 1, max_per_page: 5
236
- property :value, type: Types::String, sortable: true
237
- property :id, type: Types::Integer, sortable: true
238
- end
239
-
240
- expect(finder.params).to eq value_eq: "Test 1", sort: "value asc, id desc", page: 2, per_page: 2
241
- expect(finder.filters[:value_eq][:predicate]).to eq "eq"
242
- end
243
- end
244
-
245
- describe ".signal" do
246
- it "shows the end signal from the trailblazer activity" do
247
- entity = [
248
- {id: 1, value: "Test 1"},
249
- {id: 2, value: "Test 2"},
250
- {id: 3, value: "Test 1"},
251
- {id: 4, value: "Test 4"},
252
- {id: 5, value: "Test 1"}
253
- ]
254
-
255
- finder = new_finder entity, value_eq: "Test 1", sort: "value asc, id desc", page: 2 do
256
- paging per_page: 2, min_per_page: 1, max_per_page: 5
257
- property :value, type: Types::String, sortable: true
258
- property :id, type: Types::Integer, sortable: true
259
- end
260
-
261
- expect(finder.params).to eq value_eq: "Test 1", sort: "value asc, id desc", page: 2, per_page: 2
262
- expect(finder.signal.to_json).to include("success")
263
- end
264
- end
265
-
266
- describe ".sort?" do
267
- it "returns if an attribute is sorted on or not" do
268
- entity = [
269
- {id: 1, value: "Test 1"},
270
- {id: 2, value: "Test 2"},
271
- {id: 3, value: "Test 1"},
272
- {id: 4, value: "Test 4"},
273
- {id: 5, value: "Test 1"}
274
- ]
275
-
276
- finder = new_finder entity, value_eq: "Test 1", sort: "value asc", page: 2 do
277
- paging per_page: 2, min_per_page: 1, max_per_page: 5
278
- property :value, type: Types::String, sortable: true
279
- property :id, type: Types::Integer, sortable: true
280
- end
281
-
282
- expect(finder.params).to eq value_eq: "Test 1", sort: "value asc", page: 2, per_page: 2
283
- expect(finder.sort?(:id)).to eq false
284
- expect(finder.sort?(:value)).to eq true
285
- end
286
- end
287
-
288
- describe ".sort_direction_for" do
289
- it "shows the sort direction for an attribute" do
290
- entity = [
291
- {id: 1, value: "Test 1"},
292
- {id: 2, value: "Test 2"},
293
- {id: 3, value: "Test 1"},
294
- {id: 4, value: "Test 4"},
295
- {id: 5, value: "Test 1"}
296
- ]
297
-
298
- finder = new_finder entity, value_eq: "Test 1", sort: "value asc, id desc", page: 2 do
299
- paging per_page: 2, min_per_page: 1, max_per_page: 5
300
- property :value, type: Types::String, sortable: true
301
- property :id, type: Types::Integer, sortable: true
302
- end
303
-
304
- expect(finder.params).to eq value_eq: "Test 1", sort: "value asc, id desc", page: 2, per_page: 2
305
- expect(finder.sort_direction_for(:id)).to eq "desc"
306
- expect(finder.sort_direction_for(:value)).to eq "asc"
307
- end
308
- end
309
-
310
- describe ".reverse_sort_direction_for" do
311
- it "shows the reversed sort direction for an attribute" do
312
- entity = [
313
- {id: 1, value: "Test 1"},
314
- {id: 2, value: "Test 2"},
315
- {id: 3, value: "Test 1"},
316
- {id: 4, value: "Test 4"},
317
- {id: 5, value: "Test 1"}
318
- ]
319
-
320
- finder = new_finder entity, value_eq: "Test 1", sort: "value asc, id desc", page: 2 do
321
- paging per_page: 2, min_per_page: 1, max_per_page: 5
322
- property :value, type: Types::String, sortable: true
323
- property :id, type: Types::Integer, sortable: true
324
- end
325
-
326
- expect(finder.params).to eq value_eq: "Test 1", sort: "value asc, id desc", page: 2, per_page: 2
327
- expect(finder.reverse_sort_direction_for(:id)).to eq "asc"
328
- expect(finder.reverse_sort_direction_for(:value)).to eq "desc"
329
- end
330
- end
331
-
332
- describe ".sort_params_for" do
333
- it "returns the sort parameters for a requested attribute (added to existing ones)" do
334
- entity = [
335
- {id: 1, value: "Test 1"},
336
- {id: 2, value: "Test 2"},
337
- {id: 3, value: "Test 1"},
338
- {id: 4, value: "Test 4"},
339
- {id: 5, value: "Test 1"}
340
- ]
341
-
342
- finder = new_finder entity, value_eq: "Test 1", sort: "value asc", page: 2 do
343
- paging per_page: 2, min_per_page: 1, max_per_page: 5
344
- property :value, type: Types::String, sortable: true
345
- property :id, type: Types::Integer, sortable: true
346
- end
347
-
348
- expect(finder.params).to eq value_eq: "Test 1", sort: "value asc", page: 2, per_page: 2
349
- expect(finder.sort_params_for(:id)[:sort]).to eq "value asc, id desc"
350
- expect(finder.sort_params_for(:value)[:sort]).to eq "value desc"
351
- end
352
-
353
- it "returns the sort parameters for a requested attribute (when none existed)" do
354
- entity = [
355
- {id: 1, value: "Test 1"},
356
- {id: 2, value: "Test 2"},
357
- {id: 3, value: "Test 1"},
358
- {id: 4, value: "Test 4"},
359
- {id: 5, value: "Test 1"}
360
- ]
361
-
362
- finder = new_finder entity, value_eq: "Test 1", page: 2 do
363
- paging per_page: 2, min_per_page: 1, max_per_page: 5
364
- property :value, type: Types::String, sortable: true
365
- property :id, type: Types::Integer, sortable: true
366
- end
367
-
368
- expect(finder.params).to eq value_eq: "Test 1", sort: nil, page: 2, per_page: 2
369
- expect(finder.sort_params_for(:id)[:sort]).to eq "id desc"
370
- expect(finder.sort_params_for(:value)[:sort]).to eq "value desc"
371
- end
372
- end
373
-
374
- describe ".new_sort_params_for" do
375
- it "returns the sort parameters for a requested attribute while cleaning old ones" do
376
- entity = [
377
- {id: 1, value: "Test 1"},
378
- {id: 2, value: "Test 2"},
379
- {id: 3, value: "Test 1"},
380
- {id: 4, value: "Test 4"},
381
- {id: 5, value: "Test 1"}
382
- ]
383
-
384
- finder = new_finder entity, value_eq: "Test 1", sort: "value asc", page: 2 do
385
- paging per_page: 2, min_per_page: 1, max_per_page: 5
386
- property :value, type: Types::String, sortable: true
387
- property :id, type: Types::Integer, sortable: true
388
- end
389
-
390
- expect(finder.params).to eq value_eq: "Test 1", sort: "value asc", page: 2, per_page: 2
391
- expect(finder.new_sort_params_for(:id)[:sort]).to eq "id desc"
392
- end
393
- end
394
-
395
- describe ".remove_sort_params_for" do
396
- it "returns the sort parameters for a requested attribute while cleaning old ones" do
397
- entity = [
398
- {id: 1, value: "Test 1"},
399
- {id: 2, value: "Test 2"},
400
- {id: 3, value: "Test 1"},
401
- {id: 4, value: "Test 4"},
402
- {id: 5, value: "Test 1"}
403
- ]
404
-
405
- finder = new_finder entity, value_eq: "Test 1", sort: "value asc, id desc", page: 2 do
406
- paging per_page: 2, min_per_page: 1, max_per_page: 5
407
- property :value, type: Types::String, sortable: true
408
- property :id, type: Types::Integer, sortable: true
409
- end
410
-
411
- expect(finder.params).to eq value_eq: "Test 1", sort: "value asc, id desc", page: 2, per_page: 2
412
- expect(finder.remove_sort_params_for(:id)[:sort]).to eq "value asc"
413
- end
414
- end
415
- end
416
- end
417
- end
@@ -1,204 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- module Trailblazer
6
- class Finder # rubocop:disable Metrics/ClassLength
7
- describe Dsl do
8
- def define_finder_class(&block)
9
- Class.new(Trailblazer::Finder) do
10
- class_eval(&block)
11
- end
12
- end
13
-
14
- def finder_class(default_entity = [], &block)
15
- define_finder_class do
16
- entity { default_entity }
17
-
18
- class_eval(&block) unless block.nil?
19
- end
20
- end
21
-
22
- def new_finder(default_entity = [], filter = {}, &block)
23
- finder_class(default_entity, &block).new params: filter
24
- end
25
-
26
- describe "entity" do
27
- def empty_finder_class
28
- define_finder_class do
29
- filter_by :name do
30
- end
31
- end
32
- end
33
-
34
- it "accepts entity as argument" do
35
- expect(finder_class.new(entity: "entity").result).to eq "entity"
36
- end
37
-
38
- it "raises an error if no entity is provided" do
39
- expect(empty_finder_class.new.errors).to eq [{entity: "Invalid entity specified"}]
40
- end
41
-
42
- it "can overwrite the finder entity" do
43
- finder_class = define_finder_class do
44
- entity { "entity" }
45
- end
46
-
47
- expect(finder_class.new(entity: "other entity").result).to eq "other entity"
48
- end
49
-
50
- it "passing nil as entity in constructor, falls back to default entity" do
51
- finder_class = define_finder_class do
52
- entity { "entity" }
53
- end
54
-
55
- expect(finder_class.new(entity: nil).result).to eq "entity"
56
- end
57
- end
58
-
59
- describe "#adapters" do
60
- it "checks for a valid adapter and returns an error" do
61
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
62
- finder = new_finder entity, value_eq: "Test 1" do
63
- adapter :NonExisting
64
- end
65
-
66
- expect(finder.errors).to eq [{adapter: "The specified adapter are invalid"}]
67
- end
68
-
69
- it "sets the adapter in the config" do
70
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
71
- finder = new_finder entity, value_eq: "Test 1" do
72
- adapter "ActiveRecord"
73
- property :value, type: Base
74
- end
75
-
76
- expect(finder.class.config[:adapter]).to eq "ActiveRecord"
77
- end
78
- end
79
-
80
- describe "#property" do
81
- it "checks for a valid property type and returns an error" do
82
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
83
- finder = new_finder entity, value_eq: "Test 1" do
84
- property :value, type: Base
85
- end
86
-
87
- expect(finder.errors).to eq [{properties: "One or more properties are missing a valid type"}]
88
- end
89
-
90
- it "sets the property and it's type properly in the config" do
91
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
92
- finder = new_finder entity, value_eq: "Test 1" do
93
- property :value, type: Base
94
- end
95
-
96
- expect(finder.class.config[:properties]).to eq value: {type: Trailblazer::Finder::Base}
97
- end
98
- end
99
-
100
- describe "#paging" do
101
- it "sets the paging values" do
102
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
103
- finder = new_finder entity do
104
- paging per_page: 2, min_per_page: 1, max_per_page: 5
105
- property :value, type: Types::String
106
- end
107
-
108
- expect(finder.class.config[:paging][:per_page]).to eq 2
109
- expect(finder.class.config[:paging][:min_per_page]).to eq 1
110
- expect(finder.class.config[:paging][:max_per_page]).to eq 5
111
- end
112
-
113
- it "does not load paging stuff if paging isn't called in the finder class" do
114
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
115
- finder = new_finder entity do
116
- property :value, type: Types::String
117
- end
118
-
119
- expect(finder.class.config[:paging]).to be_empty
120
- end
121
- end
122
-
123
- describe "#filter_by" do
124
- it "returns an error when supplied with a non symbol" do
125
- entity = [1, 2, 3]
126
- finder = new_finder entity, value_test: "some" do
127
- filter_by :value_test, with: "test"
128
- end
129
-
130
- expect(finder.result).to eq errors: [{filters: "One or more filters are missing a with method definition"}]
131
- end
132
-
133
- it "has a default filter" do
134
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
135
- finder = new_finder entity, value: "Test 1" do
136
- filter_by :value
137
- end
138
-
139
- expect(finder.result.map { |n| n[:value] }).to eq ["Test 1"]
140
- end
141
-
142
- it "has a default filter working when it's nested" do
143
- entity = [{id: 1, value: [id: 4, value: "Test 1"]}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
144
- finder = new_finder entity, value: "Test 1" do
145
- filter_by :value
146
- end
147
-
148
- expect(finder.result.map { |n| n[:value] }).to eq ["Test 1"]
149
- expect(finder.result.map { |n| n[:id] }).to eq [4]
150
- end
151
-
152
- it "has another default filter" do
153
- entity = [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: "Test 3"}]
154
- finder = new_finder entity, id: 2 do
155
- filter_by :id
156
- end
157
-
158
- expect(finder.result.map { |n| n[:value] }).to eq ["Test 2"]
159
- end
160
-
161
- it "returns the entity if nil is returned" do
162
- entity = [1, 2, 3]
163
- finder = new_finder entity, value_test: "some" do
164
- filter_by :value_test do
165
- nil
166
- end
167
- end
168
-
169
- expect(finder.result).to eq entity
170
- end
171
-
172
- it "can use methods from the object" do
173
- finder_1 = new_finder [1, 2, 3], filter: 1 do
174
- filter_by :filter do |entity, attribute, value|
175
- some_instance_method(entity, attribute, value)
176
- end
177
-
178
- private
179
-
180
- def some_instance_method(entity, _attribute, _value)
181
- entity - [2, 3]
182
- end
183
- end
184
-
185
- expect(finder_1.result).to eq [1]
186
- end
187
-
188
- it "can dispatch with instance methods" do
189
- finder = new_finder [1, 2, 3], filter: 1 do
190
- filter_by :filter, with: :some_instance_method
191
-
192
- private
193
-
194
- def some_instance_method(entity, _attribute, value)
195
- entity.select { |v| v == value }
196
- end
197
- end
198
-
199
- expect(finder.result).to eq [1]
200
- end
201
- end
202
- end
203
- end
204
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- module Trailblazer
6
- class Finder
7
- module Utils
8
- describe Hash do
9
- let(:hash) do
10
- [{id: 1, value: "Test 1"}, {id: 2, value: "Test 2"}, {id: 3, value: ""}, {id: 4, value: "Test 4"}]
11
- end
12
-
13
- describe ".deep_locate" do
14
- it "locates enumerables for which the given comparator returns true for at least one element" do
15
- expect(described_class.deep_locate(->(k, v, _) { k == :value && v.to_s == "Test 2" && !v.nil? }, hash))
16
- .to eq [{id: 2, value: "Test 2"}]
17
- end
18
- end
19
-
20
- it "returns an empty array if nothing was found" do
21
- expect(described_class.deep_locate(:muff, foo: "bar")).to eq([])
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- module Trailblazer
6
- class Finder
7
- module Utils
8
- describe Splitter do
9
- describe ".initialize" do
10
- it "sets key and value" do
11
- splitter = described_class.new "attribute_eq", "value"
12
- expect(splitter.key).to eq "attribute_eq"
13
- expect(splitter.value).to eq "value"
14
- end
15
- end
16
-
17
- describe ".split_key" do
18
- it "checks if specified split key exists" do
19
- splitter = described_class.new "attribute_eq", "value"
20
- expect(splitter.split_key("random")).to eq false
21
- expect(splitter.split_key("eq")).to eq true
22
- end
23
-
24
- it "fills field value when split key exists" do
25
- splitter = described_class.new "attribute_eq", "value"
26
- splitter.split_key("eq")
27
- expect(splitter.field).to eq "attribute"
28
- end
29
-
30
- it "fills predicate value when split key exists" do
31
- splitter = described_class.new "attribute_eq", "value"
32
- splitter.split_key("eq")
33
- expect(splitter.predicate).to eq :eq
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end