blacklight 6.18.0 → 6.19.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.
- checksums.yaml +5 -5
- data/.rubocop_todo.yml +1 -1
- data/.travis.yml +5 -0
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/app/controllers/concerns/blacklight/bookmarks.rb +17 -3
- data/app/controllers/concerns/blacklight/catalog.rb +4 -2
- data/app/controllers/concerns/blacklight/controller.rb +10 -7
- data/app/controllers/concerns/blacklight/search_context.rb +5 -3
- data/app/controllers/concerns/blacklight/token_based_user.rb +3 -1
- data/app/models/blacklight/suggest_search.rb +3 -14
- data/app/models/concerns/blacklight/document.rb +3 -1
- data/app/models/concerns/blacklight/suggest/response.rb +5 -3
- data/app/presenters/blacklight/index_presenter.rb +3 -3
- data/blacklight.gemspec +5 -4
- data/lib/blacklight.rb +4 -4
- data/lib/blacklight/abstract_repository.rb +13 -1
- data/lib/blacklight/configuration.rb +2 -1
- data/lib/blacklight/configuration/fields.rb +46 -41
- data/lib/blacklight/engine.rb +2 -1
- data/lib/blacklight/solr/repository.rb +36 -3
- data/lib/generators/blacklight/assets_generator.rb +7 -2
- data/lib/generators/blacklight/install_generator.rb +1 -1
- data/lib/generators/blacklight/templates/catalog_controller.rb +3 -0
- data/lib/railties/blacklight.rake +11 -16
- data/spec/controllers/bookmarks_controller_spec.rb +35 -0
- data/spec/models/blacklight/configuration_spec.rb +81 -79
- data/spec/models/blacklight/solr/repository_spec.rb +11 -4
- data/spec/models/blacklight/suggest/response_spec.rb +5 -4
- data/spec/models/blacklight/suggest_search_spec.rb +6 -13
- data/spec/presenters/index_presenter_spec.rb +9 -0
- data/spec/spec_helper.rb +10 -6
- data/tasks/blacklight.rake +4 -4
- metadata +36 -16
@@ -1,6 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe Blacklight::Solr::Repository do
|
3
|
+
RSpec.describe Blacklight::Solr::Repository, api: true do
|
4
|
+
subject(:repository) do
|
5
|
+
described_class.new blacklight_config
|
6
|
+
end
|
4
7
|
|
5
8
|
let :blacklight_config do
|
6
9
|
CatalogController.blacklight_config.deep_copy
|
@@ -42,7 +45,7 @@ describe Blacklight::Solr::Repository do
|
|
42
45
|
allow(subject.connection).to receive(:send_and_receive).with('select', hash_including(params: { id: '123', qt: 'abc'})).and_return(mock_response)
|
43
46
|
expect(subject.find("123", {qt: 'abc'})).to be_a_kind_of Blacklight::Solr::Response
|
44
47
|
end
|
45
|
-
|
48
|
+
|
46
49
|
it "should use the :qt parameter from the default_document_solr_params" do
|
47
50
|
blacklight_config.default_document_solr_params[:qt] = 'abc'
|
48
51
|
blacklight_config.document_solr_request_handler = 'xyz'
|
@@ -82,12 +85,12 @@ describe Blacklight::Solr::Repository do
|
|
82
85
|
allow(subject.connection).to receive(:send_and_receive).with('select', hash_including(params: { qt: 'abc'})).and_return(mock_response)
|
83
86
|
expect(subject.search({qt: 'abc'})).to be_a_kind_of Blacklight::Solr::Response
|
84
87
|
end
|
85
|
-
|
88
|
+
|
86
89
|
it "should preserve the class of the incoming params" do
|
87
90
|
search_params = ActiveSupport::HashWithIndifferentAccess.new
|
88
91
|
search_params[:q] = "query"
|
89
92
|
allow(subject.connection).to receive(:send_and_receive).with('select', anything).and_return(mock_response)
|
90
|
-
|
93
|
+
|
91
94
|
response = subject.search(search_params)
|
92
95
|
expect(response).to be_a_kind_of Blacklight::Solr::Response
|
93
96
|
expect(response.params).to be_a_kind_of ActiveSupport::HashWithIndifferentAccess
|
@@ -134,5 +137,9 @@ describe Blacklight::Solr::Repository do
|
|
134
137
|
end
|
135
138
|
end
|
136
139
|
|
140
|
+
describe '#ping' do
|
141
|
+
subject { repository.ping }
|
137
142
|
|
143
|
+
it { is_expected.to be true }
|
144
|
+
end
|
138
145
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe Blacklight::Suggest::Response do
|
4
|
-
let(:empty_response) { described_class.new({}, { q: 'hello' }, 'suggest') }
|
3
|
+
RSpec.describe Blacklight::Suggest::Response, api: true do
|
4
|
+
let(:empty_response) { described_class.new({}, { q: 'hello' }, 'suggest', 'mySuggester') }
|
5
5
|
let(:full_response) do
|
6
6
|
described_class.new(
|
7
7
|
{
|
@@ -36,7 +36,8 @@ describe Blacklight::Suggest::Response do
|
|
36
36
|
{
|
37
37
|
q: 'new'
|
38
38
|
},
|
39
|
-
'suggest'
|
39
|
+
'suggest',
|
40
|
+
'mySuggester'
|
40
41
|
)
|
41
42
|
end
|
42
43
|
|
@@ -52,4 +53,4 @@ describe Blacklight::Suggest::Response do
|
|
52
53
|
expect(full_response.suggestions.first['term']).to eq 'new jersey'
|
53
54
|
end
|
54
55
|
end
|
55
|
-
end
|
56
|
+
end
|
@@ -2,21 +2,14 @@
|
|
2
2
|
|
3
3
|
describe Blacklight::SuggestSearch do
|
4
4
|
let(:params) { {q: 'test'} }
|
5
|
-
let(:
|
6
|
-
let(:
|
7
|
-
let(:repository) { instance_double(Blacklight::Solr::Repository, connection: connection) }
|
5
|
+
let(:response) { instance_double(Blacklight::Suggest::Response)}
|
6
|
+
let(:repository) { instance_double(Blacklight::Solr::Repository, suggestions: response) }
|
8
7
|
let(:suggest_search) { described_class.new(params, repository)}
|
8
|
+
|
9
9
|
describe '#suggestions' do
|
10
|
-
it '
|
11
|
-
expect(
|
12
|
-
expect(suggest_search).to
|
13
|
-
expect(suggest_search.suggestions).to be_an Blacklight::Suggest::Response
|
14
|
-
end
|
15
|
-
end
|
16
|
-
describe '#suggest_results' do
|
17
|
-
it 'calls send_and_recieve from a repository connection' do
|
18
|
-
expect(suggest_search).to receive(:suggest_handler_path).and_return(suggest_path)
|
19
|
-
expect(suggest_search.suggest_results).to eq 'sent'
|
10
|
+
it 'delegates to the repository' do
|
11
|
+
expect(repository).to receive(:suggestions).with(q: 'test').and_return(response)
|
12
|
+
expect(suggest_search.suggestions).to eq response
|
20
13
|
end
|
21
14
|
end
|
22
15
|
end
|
@@ -49,6 +49,15 @@ describe Blacklight::IndexPresenter do
|
|
49
49
|
expect(Deprecation).to receive(:warn)
|
50
50
|
expect(subject).to eq 'document qwer value'
|
51
51
|
end
|
52
|
+
|
53
|
+
context 'with a name as a symbol' do
|
54
|
+
subject { presenter.field_value :qwer }
|
55
|
+
|
56
|
+
it 'raises a deprecation' do
|
57
|
+
expect(Deprecation).to receive(:warn)
|
58
|
+
expect(subject).to eq 'document qwer value'
|
59
|
+
end
|
60
|
+
end
|
52
61
|
end
|
53
62
|
|
54
63
|
context 'when an explicit value is provided' do
|
data/spec/spec_helper.rb
CHANGED
@@ -25,15 +25,19 @@ require 'rspec/rails'
|
|
25
25
|
require 'rspec/its'
|
26
26
|
require 'rspec/collection_matchers'
|
27
27
|
require 'capybara/rspec'
|
28
|
-
require '
|
28
|
+
require 'selenium-webdriver'
|
29
29
|
require 'equivalent-xml'
|
30
30
|
|
31
|
-
Capybara.javascript_driver = :
|
31
|
+
Capybara.javascript_driver = :headless_chrome
|
32
32
|
|
33
|
-
Capybara.register_driver :
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
Capybara.register_driver :headless_chrome do |app|
|
34
|
+
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
|
35
|
+
chromeOptions: { args: %w[headless disable-gpu] }
|
36
|
+
)
|
37
|
+
|
38
|
+
Capybara::Selenium::Driver.new(app,
|
39
|
+
browser: :chrome,
|
40
|
+
desired_capabilities: capabilities)
|
37
41
|
end
|
38
42
|
|
39
43
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
data/tasks/blacklight.rake
CHANGED
@@ -12,9 +12,9 @@ RuboCop::RakeTask.new(:rubocop)
|
|
12
12
|
EngineCart.fingerprint_proc = EngineCart.rails_fingerprint_proc
|
13
13
|
|
14
14
|
desc "Run test suite"
|
15
|
-
task :
|
15
|
+
task ci: ['blacklight:generate'] do
|
16
16
|
SolrWrapper.wrap do |solr|
|
17
|
-
solr.with_collection
|
17
|
+
solr.with_collection do
|
18
18
|
within_test_app do
|
19
19
|
system "RAILS_ENV=test rake blacklight:index:seed"
|
20
20
|
end
|
@@ -52,8 +52,8 @@ namespace :blacklight do
|
|
52
52
|
Rake::Task['engine_cart:generate'].invoke
|
53
53
|
end
|
54
54
|
|
55
|
-
SolrWrapper.wrap
|
56
|
-
solr.with_collection
|
55
|
+
SolrWrapper.wrap do |solr|
|
56
|
+
solr.with_collection do
|
57
57
|
Rake::Task['blacklight:internal:seed'].invoke
|
58
58
|
|
59
59
|
within_test_app do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Rochkind
|
@@ -17,7 +17,7 @@ authors:
|
|
17
17
|
autorequire:
|
18
18
|
bindir: exe
|
19
19
|
cert_chain: []
|
20
|
-
date: 2018-
|
20
|
+
date: 2018-12-17 00:00:00.000000000 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: rails
|
@@ -57,16 +57,16 @@ dependencies:
|
|
57
57
|
name: jbuilder
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - "
|
60
|
+
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '2.7'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "
|
67
|
+
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '2.7'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: nokogiri
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -217,44 +217,64 @@ dependencies:
|
|
217
217
|
name: capybara
|
218
218
|
requirement: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- - "
|
220
|
+
- - ">="
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: '2
|
222
|
+
version: '2'
|
223
|
+
- - "<"
|
224
|
+
- !ruby/object:Gem::Version
|
225
|
+
version: '4'
|
223
226
|
type: :development
|
224
227
|
prerelease: false
|
225
228
|
version_requirements: !ruby/object:Gem::Requirement
|
226
229
|
requirements:
|
227
|
-
- - "
|
230
|
+
- - ">="
|
228
231
|
- !ruby/object:Gem::Version
|
229
|
-
version: '2
|
232
|
+
version: '2'
|
233
|
+
- - "<"
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: '4'
|
230
236
|
- !ruby/object:Gem::Dependency
|
231
|
-
name:
|
237
|
+
name: chromedriver-helper
|
238
|
+
requirement: !ruby/object:Gem::Requirement
|
239
|
+
requirements:
|
240
|
+
- - "<"
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: 2.0.0
|
243
|
+
type: :development
|
244
|
+
prerelease: false
|
245
|
+
version_requirements: !ruby/object:Gem::Requirement
|
246
|
+
requirements:
|
247
|
+
- - "<"
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: 2.0.0
|
250
|
+
- !ruby/object:Gem::Dependency
|
251
|
+
name: selenium-webdriver
|
232
252
|
requirement: !ruby/object:Gem::Requirement
|
233
253
|
requirements:
|
234
254
|
- - ">="
|
235
255
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
256
|
+
version: 3.13.1
|
237
257
|
type: :development
|
238
258
|
prerelease: false
|
239
259
|
version_requirements: !ruby/object:Gem::Requirement
|
240
260
|
requirements:
|
241
261
|
- - ">="
|
242
262
|
- !ruby/object:Gem::Version
|
243
|
-
version:
|
263
|
+
version: 3.13.1
|
244
264
|
- !ruby/object:Gem::Dependency
|
245
265
|
name: engine_cart
|
246
266
|
requirement: !ruby/object:Gem::Requirement
|
247
267
|
requirements:
|
248
268
|
- - "~>"
|
249
269
|
- !ruby/object:Gem::Version
|
250
|
-
version: '1.
|
270
|
+
version: '1.2'
|
251
271
|
type: :development
|
252
272
|
prerelease: false
|
253
273
|
version_requirements: !ruby/object:Gem::Requirement
|
254
274
|
requirements:
|
255
275
|
- - "~>"
|
256
276
|
- !ruby/object:Gem::Version
|
257
|
-
version: '1.
|
277
|
+
version: '1.2'
|
258
278
|
- !ruby/object:Gem::Dependency
|
259
279
|
name: equivalent-xml
|
260
280
|
requirement: !ruby/object:Gem::Requirement
|
@@ -765,7 +785,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
765
785
|
version: '0'
|
766
786
|
requirements: []
|
767
787
|
rubyforge_project:
|
768
|
-
rubygems_version: 2.6
|
788
|
+
rubygems_version: 2.7.6
|
769
789
|
signing_key:
|
770
790
|
specification_version: 4
|
771
791
|
summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
|