blacklight 7.5.1 → 7.6.0

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.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +23 -34
  3. data/.travis.yml +3 -3
  4. data/VERSION +1 -1
  5. data/app/helpers/blacklight/blacklight_helper_behavior.rb +4 -2
  6. data/app/helpers/blacklight/catalog_helper_behavior.rb +0 -2
  7. data/app/presenters/blacklight/document_presenter.rb +27 -36
  8. data/app/presenters/blacklight/field_presenter.rb +31 -6
  9. data/app/presenters/blacklight/index_presenter.rb +2 -2
  10. data/app/presenters/blacklight/show_presenter.rb +3 -3
  11. data/app/views/catalog/_constraints.html.erb +1 -1
  12. data/app/views/catalog/_facet_pagination.html.erb +2 -2
  13. data/app/views/catalog/_field.json.jbuilder +2 -2
  14. data/app/views/catalog/_index.html.erb +3 -3
  15. data/app/views/catalog/_search_form.html.erb +1 -1
  16. data/app/views/catalog/_show.html.erb +3 -3
  17. data/app/views/catalog/_sort_and_per_page.html.erb +1 -1
  18. data/app/views/catalog/_start_over.html.erb +1 -0
  19. data/app/views/catalog/_thumbnail.html.erb +1 -1
  20. data/app/views/catalog/index.json.jbuilder +2 -1
  21. data/app/views/catalog/show.html.erb +1 -1
  22. data/app/views/catalog/show.json.jbuilder +2 -1
  23. data/app/views/layouts/blacklight/base.html.erb +2 -2
  24. data/config/locales/blacklight.ar.yml +2 -0
  25. data/config/locales/blacklight.de.yml +2 -0
  26. data/config/locales/blacklight.en.yml +2 -0
  27. data/config/locales/blacklight.es.yml +2 -0
  28. data/config/locales/blacklight.fr.yml +2 -0
  29. data/config/locales/blacklight.hu.yml +2 -0
  30. data/config/locales/blacklight.it.yml +2 -0
  31. data/config/locales/blacklight.nl.yml +2 -0
  32. data/config/locales/blacklight.pt-BR.yml +2 -0
  33. data/config/locales/blacklight.sq.yml +2 -0
  34. data/config/locales/blacklight.zh.yml +2 -0
  35. data/lib/blacklight/configuration/field.rb +5 -4
  36. data/spec/helpers/blacklight_helper_spec.rb +17 -0
  37. data/spec/helpers/catalog_helper_spec.rb +0 -7
  38. data/spec/presenters/blacklight/document_presenter_spec.rb +22 -62
  39. data/spec/presenters/blacklight/field_presenter_spec.rb +268 -0
  40. data/spec/presenters/blacklight/index_presenter_spec.rb +0 -142
  41. data/spec/presenters/blacklight/show_presenter_spec.rb +0 -177
  42. metadata +6 -3
@@ -0,0 +1,268 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Blacklight::FieldPresenter, api: true do
4
+ subject(:presenter) { described_class.new(request_context, document, field_config, options) }
5
+
6
+ let(:request_context) { double('View context', search_state: search_state, should_render_field?: true, blacklight_config: config) }
7
+ let(:document) do
8
+ SolrDocument.new(id: 1,
9
+ 'link_to_facet_true' => 'x',
10
+ 'link_to_facet_named' => 'x',
11
+ 'qwer' => 'document qwer value',
12
+ 'some_field' => [1, 2])
13
+ end
14
+ let(:options) { {} }
15
+ let(:params) { {} }
16
+ let(:controller) { double }
17
+ let(:search_state) { Blacklight::SearchState.new(params, config, controller) }
18
+
19
+ let(:field_config) { config.index_fields[field_name] }
20
+ let(:field_name) { 'asdf' }
21
+ let(:config) do
22
+ Blacklight::Configuration.new.configure do |config|
23
+ config.add_index_field 'qwer'
24
+ config.add_index_field 'asdf', helper_method: :render_asdf_index_field
25
+ config.add_index_field 'link_to_facet_true', link_to_facet: true
26
+ config.add_index_field 'link_to_facet_named', link_to_facet: :some_field
27
+ config.add_index_field 'highlight', highlight: true
28
+ config.add_index_field 'solr_doc_accessor', accessor: true
29
+ config.add_index_field 'explicit_accessor', accessor: :solr_doc_accessor
30
+ config.add_index_field 'explicit_array_accessor', accessor: [:solr_doc_accessor, :some_method]
31
+ config.add_index_field 'explicit_values', values: ->(_config, _doc) { ['some-value'] }
32
+ config.add_index_field 'alias', field: 'qwer'
33
+ config.add_index_field 'with_default', default: 'value'
34
+ end
35
+ end
36
+
37
+ describe '#render' do
38
+ subject(:result) { presenter.render }
39
+
40
+ context 'when an explicit html value is provided' do
41
+ let(:options) { { value: '<b>val1</b>' } }
42
+
43
+ it { is_expected.to eq '&lt;b&gt;val1&lt;/b&gt;' }
44
+ end
45
+
46
+ context 'when an explicit array value with unsafe characters is provided' do
47
+ let(:options) { { value: ['<a', 'b'] } }
48
+
49
+ it { is_expected.to eq '&lt;a and b' }
50
+ end
51
+
52
+ context 'when an explicit array value is provided' do
53
+ let(:options) { { value: %w[a b c] } }
54
+
55
+ it { is_expected.to eq 'a, b, and c' }
56
+ end
57
+
58
+ context 'when an explicit value is provided' do
59
+ let(:options) { { value: 'asdf' } }
60
+
61
+ it { is_expected.to eq 'asdf' }
62
+ end
63
+
64
+ context 'when field has a helper method' do
65
+ before do
66
+ allow(request_context).to receive(:render_asdf_index_field).and_return('custom asdf value')
67
+ end
68
+
69
+ it { is_expected.to eq 'custom asdf value' }
70
+ end
71
+
72
+ context 'when field has link_to_facet with true' do
73
+ before do
74
+ allow(request_context).to receive(:search_action_path).with('f' => { 'link_to_facet_true' => ['x'] }).and_return('/foo')
75
+ allow(request_context).to receive(:link_to).with("x", '/foo').and_return('bar')
76
+ end
77
+
78
+ let(:field_name) { 'link_to_facet_true' }
79
+
80
+ it { is_expected.to eq 'bar' }
81
+ end
82
+
83
+ context 'when field has link_to_facet with a field name' do
84
+ before do
85
+ allow(request_context).to receive(:search_action_path).with('f' => { 'some_field' => ['x'] }).and_return('/foo')
86
+ allow(request_context).to receive(:link_to).with("x", '/foo').and_return('bar')
87
+ end
88
+
89
+ let(:field_name) { 'link_to_facet_named' }
90
+
91
+ it { is_expected.to eq 'bar' }
92
+ end
93
+
94
+ context 'when no highlight field is available' do
95
+ before do
96
+ allow(document).to receive(:has_highlight_field?).and_return(false)
97
+ end
98
+
99
+ let(:field_name) { 'highlight' }
100
+
101
+ it { is_expected.to be_blank }
102
+ end
103
+
104
+ context 'when highlight field is available' do
105
+ before do
106
+ allow(document).to receive(:has_highlight_field?).and_return(true)
107
+ allow(document).to receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe])
108
+ end
109
+
110
+ let(:field_name) { 'highlight' }
111
+
112
+ it { is_expected.to eq '<em>highlight</em>' }
113
+ end
114
+
115
+ context 'when no options are provided' do
116
+ let(:field_name) { 'qwer' }
117
+
118
+ it "checks the document field value" do
119
+ expect(subject).to eq 'document qwer value'
120
+ end
121
+ end
122
+
123
+ context 'when accessor is true' do
124
+ before do
125
+ allow(document).to receive_messages(solr_doc_accessor: "123")
126
+ end
127
+
128
+ let(:field_name) { 'solr_doc_accessor' }
129
+
130
+ it { is_expected.to eq '123' }
131
+ end
132
+
133
+ context 'when accessor is set to a value' do
134
+ let(:field_name) { 'explicit_accessor' }
135
+
136
+ it 'calls the accessor with the field_name as the argument' do
137
+ expect(document).to receive(:solr_doc_accessor).with('explicit_accessor').and_return("123")
138
+
139
+ expect(subject).to eq '123'
140
+ end
141
+ end
142
+
143
+ context 'when accessor is set to an array' do
144
+ let(:field_name) { 'explicit_array_accessor' }
145
+
146
+ it 'calls the accessors on the return of the preceeding' do
147
+ allow(document).to receive_message_chain(:solr_doc_accessor, some_method: "123")
148
+
149
+ expect(subject).to eq '123'
150
+ end
151
+ end
152
+
153
+ context 'when the values lambda is provided' do
154
+ let(:field_name) { 'explicit_values' }
155
+
156
+ it 'calls the accessors on the return of the preceeding' do
157
+ expect(subject).to eq 'some-value'
158
+ end
159
+ end
160
+
161
+ context 'when the field is an alias' do
162
+ let(:field_name) { 'alias' }
163
+
164
+ it { is_expected.to eq 'document qwer value' }
165
+ end
166
+
167
+ context 'when the field has a default' do
168
+ let(:field_name) { 'with_default' }
169
+
170
+ it { is_expected.to eq 'value' }
171
+ end
172
+
173
+ context 'for a field with the helper_method option' do
174
+ let(:field_name) { 'field_with_helper' }
175
+ let(:field_config) { config.add_facet_field 'field_with_helper', helper_method: 'render_field_with_helper' }
176
+ let(:document) do
177
+ SolrDocument.new(id: 1, 'field_with_helper' => 'value')
178
+ end
179
+ let(:options) { { a: 1 } }
180
+
181
+ it "checks call the helper method with arguments" do
182
+ allow(request_context).to receive(:render_field_with_helper) do |*args|
183
+ args.first
184
+ end
185
+
186
+ expect(result).to include :document, :field, :value, :config, :a
187
+ expect(result[:document]).to eq document
188
+ expect(result[:field]).to eq 'field_with_helper'
189
+ expect(result[:value]).to eq ['value']
190
+ expect(result[:config]).to eq field_config
191
+ expect(result[:a]).to eq 1
192
+ end
193
+ end
194
+ end
195
+
196
+ describe '#label' do
197
+ let(:field_config) { Blacklight::Configuration::Field.new(field: 'some_field') }
198
+
199
+ it 'calculates the field label from the field configuration' do
200
+ allow(field_config).to receive(:display_label).with('index', anything).and_return('some label')
201
+
202
+ expect(presenter.label).to eq 'some label'
203
+ end
204
+
205
+ it 'sends along a count of document values so i18n can do pluralization' do
206
+ allow(field_config).to receive(:display_label).with('index', count: 2).and_return('values')
207
+
208
+ expect(presenter.label).to eq 'values'
209
+ end
210
+ end
211
+
212
+ describe '#render_field?' do
213
+ subject { presenter.render_field? }
214
+
215
+ let(:field_config) { double('field config', if: true, unless: false) }
216
+
217
+ before do
218
+ allow(presenter).to receive_messages(document_has_value?: true)
219
+ end
220
+
221
+ it { is_expected.to be true }
222
+
223
+ context 'when the view context says not to render the field' do
224
+ let(:request_context) { double('View context', should_render_field?: false, blacklight_config: config) }
225
+
226
+ before do
227
+ allow(field_config).to receive_messages(if: false)
228
+ end
229
+
230
+ it { is_expected.to be false }
231
+ end
232
+ end
233
+
234
+ describe '#any?' do
235
+ subject { presenter.any? }
236
+
237
+ context 'when the document has the field value' do
238
+ let(:field_config) { double(field: 'asdf', highlight: false, accessor: nil, default: nil, values: nil) }
239
+
240
+ before do
241
+ allow(document).to receive(:fetch).with('asdf', nil).and_return(['value'])
242
+ end
243
+
244
+ it { is_expected.to be true }
245
+ end
246
+
247
+ context 'when the document has a highlight field value' do
248
+ let(:field_config) { double(field: 'asdf', highlight: true) }
249
+
250
+ before do
251
+ allow(document).to receive(:has_highlight_field?).with('asdf').and_return(true)
252
+ allow(document).to receive(:highlight_field).with('asdf').and_return(['value'])
253
+ end
254
+
255
+ it { is_expected.to be true }
256
+ end
257
+
258
+ context 'when the field is a model accessor' do
259
+ let(:field_config) { double(field: 'asdf', highlight: false, accessor: true) }
260
+
261
+ before do
262
+ allow(document).to receive(:send).with('asdf').and_return(['value'])
263
+ end
264
+
265
+ it { is_expected.to be true }
266
+ end
267
+ end
268
+ end
@@ -24,148 +24,6 @@ RSpec.describe Blacklight::IndexPresenter, api: true do
24
24
  allow(request_context).to receive(:search_state).and_return(search_state)
25
25
  end
26
26
 
27
- describe '#field_value' do
28
- subject { presenter.field_value field }
29
-
30
- let(:field) { config.index_fields[field_name] }
31
- let(:field_name) { 'asdf' }
32
- let(:config) do
33
- Blacklight::Configuration.new.configure do |config|
34
- config.add_index_field 'qwer'
35
- config.add_index_field 'asdf', helper_method: :render_asdf_index_field
36
- config.add_index_field 'link_to_facet_true', link_to_facet: true
37
- config.add_index_field 'link_to_facet_named', link_to_facet: :some_field
38
- config.add_index_field 'highlight', highlight: true
39
- config.add_index_field 'solr_doc_accessor', accessor: true
40
- config.add_index_field 'explicit_accessor', accessor: :solr_doc_accessor
41
- config.add_index_field 'alias', field: 'qwer'
42
- config.add_index_field 'with_default', default: 'value'
43
- end
44
- end
45
-
46
- context 'when an explicit value is provided' do
47
- subject { presenter.field_value field, value: 'asdf' }
48
-
49
- it { is_expected.to eq 'asdf' }
50
- end
51
-
52
- context 'when field has a helper method' do
53
- before do
54
- allow(request_context).to receive(:render_asdf_index_field).and_return('custom asdf value')
55
- end
56
-
57
- it { is_expected.to eq 'custom asdf value' }
58
- end
59
-
60
- context 'when field has link_to_facet with true' do
61
- before do
62
- allow(request_context).to receive(:search_action_path).with('f' => { 'link_to_facet_true' => ['x'] }).and_return('/foo')
63
- allow(request_context).to receive(:link_to).with("x", '/foo').and_return('bar')
64
- end
65
-
66
- let(:field_name) { 'link_to_facet_true' }
67
-
68
- it { is_expected.to eq 'bar' }
69
- end
70
-
71
- context 'when field has link_to_facet with a field name' do
72
- before do
73
- allow(request_context).to receive(:search_action_path).with('f' => { 'some_field' => ['x'] }).and_return('/foo')
74
- allow(request_context).to receive(:link_to).with("x", '/foo').and_return('bar')
75
- end
76
-
77
- let(:field_name) { 'link_to_facet_named' }
78
-
79
- it { is_expected.to eq 'bar' }
80
- end
81
-
82
- context 'when no highlight field is available' do
83
- before do
84
- allow(document).to receive(:has_highlight_field?).and_return(false)
85
- end
86
-
87
- let(:field_name) { 'highlight' }
88
-
89
- it { is_expected.to be_blank }
90
- end
91
-
92
- context 'when highlight field is available' do
93
- before do
94
- allow(document).to receive(:has_highlight_field?).and_return(true)
95
- allow(document).to receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe])
96
- end
97
-
98
- let(:field_name) { 'highlight' }
99
-
100
- it { is_expected.to eq '<em>highlight</em>' }
101
- end
102
-
103
- context 'when no options are provided' do
104
- let(:field_name) { 'qwer' }
105
-
106
- it "checks the document field value" do
107
- expect(subject).to eq 'document qwer value'
108
- end
109
- end
110
-
111
- context 'when accessor is true' do
112
- before do
113
- allow(document).to receive_messages(solr_doc_accessor: "123")
114
- end
115
-
116
- let(:field_name) { 'solr_doc_accessor' }
117
-
118
- it { is_expected.to eq '123' }
119
- end
120
-
121
- context 'when accessor is set to a value' do
122
- let(:field_name) { 'explicit_accessor' }
123
-
124
- it 'calls the accessor with the field_name as the argument' do
125
- expect(document).to receive(:solr_doc_accessor).with('explicit_accessor').and_return("123")
126
-
127
- expect(subject).to eq '123'
128
- end
129
- end
130
-
131
- context 'when the field is an alias' do
132
- let(:field_name) { 'alias' }
133
-
134
- it { is_expected.to eq 'document qwer value' }
135
- end
136
-
137
- context 'when the field has a default' do
138
- let(:field_name) { 'with_default' }
139
-
140
- it { is_expected.to eq 'value' }
141
- end
142
- end
143
-
144
- describe '#field_values' do
145
- context 'for a field with the helper_method option' do
146
- let(:field_name) { 'field_with_helper' }
147
- let(:field_config) { config.add_facet_field 'field_with_helper', helper_method: 'render_field_with_helper' }
148
- let(:document) do
149
- SolrDocument.new(id: 1, 'field_with_helper' => 'value')
150
- end
151
-
152
- it "checks call the helper method with arguments" do
153
- allow(request_context).to receive(:render_field_with_helper) do |*args|
154
- args.first
155
- end
156
-
157
- options = subject.send(:field_values, field_config, a: 1)
158
-
159
- expect(options).to include :document, :field, :value, :config, :a
160
- expect(options[:document]).to eq document
161
- expect(options[:field]).to eq 'field_with_helper'
162
- expect(options[:value]).to eq ['value']
163
- expect(options[:config]).to eq field_config
164
- expect(options[:a]).to eq 1
165
- end
166
- end
167
- end
168
-
169
27
  describe '#fields' do
170
28
  let(:field) { instance_double(Blacklight::Configuration::Field) }
171
29
 
@@ -107,158 +107,6 @@ RSpec.describe Blacklight::ShowPresenter, api: true do
107
107
  end
108
108
  end
109
109
 
110
- describe '#field_value' do
111
- subject { presenter.field_value field }
112
-
113
- let(:field) { config.show_fields[field_name] }
114
- let(:field_name) { 'asdf' }
115
- let(:config) do
116
- Blacklight::Configuration.new.configure do |config|
117
- config.add_show_field 'qwer'
118
- config.add_show_field 'asdf', helper_method: :render_asdf_document_show_field
119
- config.add_show_field 'link_to_facet_true', link_to_facet: true
120
- config.add_show_field 'link_to_facet_named', link_to_facet: :some_field
121
- config.add_show_field 'highlight', highlight: true
122
- config.add_show_field 'solr_doc_accessor', accessor: true
123
- config.add_show_field 'explicit_accessor', accessor: :solr_doc_accessor
124
- config.add_show_field 'explicit_array_accessor', accessor: [:solr_doc_accessor, :some_method]
125
- config.add_show_field 'explicit_values', values: ->(_config, _doc) { ['some-value'] }
126
- end
127
- end
128
-
129
- context 'when an explicit html value is provided' do
130
- subject { presenter.field_value field, value: '<b>val1</b>' }
131
-
132
- it { is_expected.to eq '&lt;b&gt;val1&lt;/b&gt;' }
133
- end
134
-
135
- context 'when an explicit array value with unsafe characters is provided' do
136
- subject { presenter.field_value field, value: ['<a', 'b'] }
137
-
138
- it { is_expected.to eq '&lt;a and b' }
139
- end
140
-
141
- context 'when an explicit array value is provided' do
142
- subject { presenter.field_value field, value: %w[a b c] }
143
-
144
- it { is_expected.to eq 'a, b, and c' }
145
- end
146
-
147
- context 'when an explicit value is provided' do
148
- subject { presenter.field_value field, value: 'val1' }
149
-
150
- it { is_expected.to eq 'val1' }
151
- end
152
-
153
- context 'when field has a helper method' do
154
- before do
155
- allow(request_context).to receive(:render_asdf_document_show_field).and_return('custom asdf value')
156
- end
157
-
158
- it { is_expected.to eq 'custom asdf value' }
159
- end
160
-
161
- context 'when field has link_to_facet with true' do
162
- before do
163
- allow(request_context).to receive(:search_action_path).with('f' => { 'link_to_facet_true' => ['x'] }).and_return('/foo')
164
- allow(request_context).to receive(:link_to).with("x", '/foo').and_return('bar')
165
- end
166
-
167
- let(:field_name) { 'link_to_facet_true' }
168
-
169
- it { is_expected.to eq 'bar' }
170
- end
171
-
172
- context 'when field has link_to_facet with a field name' do
173
- before do
174
- allow(request_context).to receive(:search_action_path).with('f' => { 'some_field' => ['x'] }).and_return('/foo')
175
- allow(request_context).to receive(:link_to).with("x", '/foo').and_return('bar')
176
- end
177
-
178
- let(:field_name) { 'link_to_facet_named' }
179
-
180
- it { is_expected.to eq 'bar' }
181
- end
182
-
183
- context 'when no highlight field is available' do
184
- before do
185
- allow(document).to receive(:has_highlight_field?).and_return(false)
186
- end
187
-
188
- let(:field_name) { 'highlight' }
189
-
190
- it { is_expected.to be_blank }
191
- end
192
-
193
- context 'when highlight field is available' do
194
- before do
195
- allow(document).to receive(:has_highlight_field?).and_return(true)
196
- allow(document).to receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe])
197
- end
198
-
199
- let(:field_name) { 'highlight' }
200
-
201
- it { is_expected.to eq '<em>highlight</em>' }
202
- end
203
-
204
- context 'when highlight returns multiple values' do
205
- before do
206
- allow(document).to receive(:has_highlight_field?).and_return(true)
207
- allow(document).to receive(:highlight_field).with('highlight').and_return(['<em>highlight</em>'.html_safe, '<em>other highlight</em>'.html_safe])
208
- end
209
-
210
- let(:field_name) { 'highlight' }
211
-
212
- it { is_expected.to eq '<em>highlight</em> and <em>other highlight</em>' }
213
- end
214
-
215
- context 'when no options are provided' do
216
- let(:field_name) { 'qwer' }
217
-
218
- it "checks the document field value" do
219
- expect(subject).to eq 'document qwer value'
220
- end
221
- end
222
-
223
- context 'when accessor is true' do
224
- before do
225
- allow(document).to receive_messages(solr_doc_accessor: "123")
226
- end
227
-
228
- let(:field_name) { 'solr_doc_accessor' }
229
-
230
- it { is_expected.to eq '123' }
231
- end
232
-
233
- context 'when accessor is set to a value' do
234
- let(:field_name) { 'explicit_accessor' }
235
-
236
- it 'calls the accessor with the field_name as the argument' do
237
- expect(document).to receive(:solr_doc_accessor).with('explicit_accessor').and_return("123")
238
-
239
- expect(subject).to eq '123'
240
- end
241
- end
242
-
243
- context 'when accessor is set to an array' do
244
- let(:field_name) { 'explicit_array_accessor' }
245
-
246
- it 'calls the accessors on the return of the preceeding' do
247
- allow(document).to receive_message_chain(:solr_doc_accessor, some_method: "123")
248
-
249
- expect(subject).to eq '123'
250
- end
251
- end
252
-
253
- context 'when the values lambda is provided' do
254
- let(:field_name) { 'explicit_values' }
255
-
256
- it 'calls the accessors on the return of the preceeding' do
257
- expect(subject).to eq 'some-value'
258
- end
259
- end
260
- end
261
-
262
110
  describe '#fields' do
263
111
  let(:field) { instance_double(Blacklight::Configuration::Field) }
264
112
 
@@ -322,29 +170,4 @@ RSpec.describe Blacklight::ShowPresenter, api: true do
322
170
  expect(subject.html_title).to eq 'hardcoded'
323
171
  end
324
172
  end
325
-
326
- describe '#field_values' do
327
- context 'for a field with the helper_method option' do
328
- let(:field_name) { 'field_with_helper' }
329
- let(:field_config) { config.add_facet_field 'field_with_helper', helper_method: 'render_field_with_helper' }
330
- let(:document) do
331
- SolrDocument.new(id: 1, 'field_with_helper' => 'value')
332
- end
333
-
334
- it "checks call the helper method with arguments" do
335
- allow(request_context).to receive(:render_field_with_helper) do |*args|
336
- args.first
337
- end
338
-
339
- options = subject.send(:field_values, field_config, a: 1)
340
-
341
- expect(options).to include :document, :field, :value, :config, :a
342
- expect(options[:document]).to eq document
343
- expect(options[:field]).to eq 'field_with_helper'
344
- expect(options[:value]).to eq ['value']
345
- expect(options[:config]).to eq field_config
346
- expect(options[:a]).to eq 1
347
- end
348
- end
349
- end
350
173
  end