blacklight_range_limit 9.0.0.beta2 → 9.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bfe80b379721a4e19e01ecb97a0f1ca6335e2e85ae3914abec0f2ae9ee9546b6
4
- data.tar.gz: cdc7468b2f1e7f649f72a9f4200948cbc543d9f1e6a86bcac03b467c65b18ba2
3
+ metadata.gz: 4e201cd7f8b701d21bf9e6b97410f4559b10a727ac170941acbafbf30ca42d2b
4
+ data.tar.gz: eacc2e3ec1f19a84436f36b0ae5379ad8af4a1c0895c7f4bf0aabe743301407c
5
5
  SHA512:
6
- metadata.gz: df819d6ceb0f782c612d1eb83648a178ed2f555b599df666240cfa2cc7a75d0b3554ff29ff12ada5bdf3766bb74be88b76d054a95fd233d41309d2737bcb6cf2
7
- data.tar.gz: 269df83223ddbed2fa371c9b0aa1ebc6d5afff775d5a313a6482ba8948412456b59bbe7b1b438e51143fe2941c3e643b3ba98f5a918287ce32b4867542871c69
6
+ metadata.gz: ebe7cd1f8b4aff796900985f5f5b2ef1d38191ef2682d331963a18f715191d266ca41de8f3b6882ebd0de5556ed6a4bf0c0486bd1229eb80890b06cf50898b2a
7
+ data.tar.gz: e678a32a7854cb0310e834ece0f4d82577829288a03eb7944665f1f799dfb4178bae51ddb36c90a8550064d0162edc19b25d9465641b6004d3ce1eb63853210a
data/Rakefile CHANGED
@@ -32,10 +32,11 @@ task :guard_version_match do
32
32
 
33
33
  # 9.0.0.beta1 in gem becomes 9.0.0-beta1 in npm
34
34
  gem_version_parts = gem_version.split(".")
35
+
35
36
  npm_version_required = [
36
37
  gem_version_parts.slice(0, 3).join("."),
37
38
  gem_version_parts.slice(3, gem_version_parts.length).join(".")
38
- ].join("-")
39
+ ].collect {|s| s if s && !s.empty? }.compact.join("-")
39
40
 
40
41
  if npm_version != npm_version_required
41
42
  raise <<~EOS
data/VERSION CHANGED
@@ -1 +1 @@
1
- 9.0.0.beta2
1
+ 9.0.0
@@ -48,6 +48,12 @@ module BlacklightRangeLimit
48
48
  # range_field, range_start, range_end
49
49
  def fetch_specific_range_limit(solr_params)
50
50
  field_key = blacklight_params[:range_field] # what field to fetch for
51
+
52
+ unless blacklight_params[:range_start].present? && blacklight_params[:range_start].kind_of?(String) &&
53
+ blacklight_params[:range_end].present? && blacklight_params[:range_end].kind_of?(String)
54
+ raise BlacklightRangeLimit::InvalidRange
55
+ end
56
+
51
57
  start = blacklight_params[:range_start].to_i
52
58
  finish = blacklight_params[:range_end].to_i
53
59
 
@@ -61,6 +67,9 @@ module BlacklightRangeLimit
61
67
  solr_params[:rows] = 0
62
68
 
63
69
  return solr_params
70
+ rescue BlacklightRangeLimit::InvalidRange
71
+ # This will make Rails return a 400
72
+ raise ActionController::BadRequest, "invalid range_start (#{blacklight_params[:range_start]}) or range_end (#{blacklight_params[:range_end]})"
64
73
  end
65
74
 
66
75
  # hacky polyfill for new Blacklight behavior we need, if we don't have it yet
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blacklight-range-limit",
3
- "version": "9.0.0-beta2",
3
+ "version": "9.0.0",
4
4
  "description": "A range facet UI component plugin for blacklight",
5
5
  "type": "module",
6
6
 
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe CatalogController, type: :controller do
4
+ # Note that ActionController::BadRequest is caught by rails and turned into a 400
5
+ # response, and ActionController::RoutingError is caught by raisl and turned into 404
6
+ describe "bad params" do
7
+ let (:facet_field) { "pub_date_si" }
8
+
9
+ it "without start param present raise BadRequest " do
10
+ expect {
11
+ get :range_limit, params: {
12
+ "range_field"=> facet_field,
13
+ "range_start"=>"1931"
14
+ }
15
+ }.to raise_error(ActionController::BadRequest)
16
+ end
17
+
18
+ it "without end param raise BadRequest " do
19
+ expect {
20
+ get :range_limit, params: {
21
+ "range_field"=> facet_field,
22
+ "range_start"=>"1931"
23
+ }
24
+ }.to raise_error(ActionController::BadRequest)
25
+ end
26
+
27
+ it "without either boundary raise BadRequest" do
28
+ expect {
29
+ get :range_limit, params: {
30
+ "range_field"=> facet_field,
31
+ }
32
+ }.to raise_error(ActionController::BadRequest)
33
+ end
34
+
35
+ it "without a range_field raise RoutingError" do
36
+ expect {
37
+ get :range_limit, params: {}
38
+ }.to raise_error(ActionController::RoutingError)
39
+ end
40
+
41
+ it "with params out of order raise BadRequest" do
42
+ expect {
43
+ get :range_limit, params: {
44
+ "range_field"=> facet_field,
45
+ "range_start"=>"1940",
46
+ "range_end"=>"1930"
47
+ }
48
+ }.to raise_error(ActionController::BadRequest)
49
+ end
50
+
51
+ it "with one of the params is an array raise BadRequest" do
52
+ expect {
53
+ get :range_limit, params: {
54
+ "range_field"=> facet_field,
55
+ "range_start"=>"1931",
56
+ "range_end"=>["1940"]
57
+ }
58
+ }.to raise_error(ActionController::BadRequest)
59
+ end
60
+ end
61
+ end
@@ -13,9 +13,13 @@ class TestAppGenerator < Rails::Generators::Base
13
13
  end
14
14
 
15
15
  def run_bl8_jsbundling_fixup
16
- # while it's named confusingly, the BL8 assets:propshaft generator has what we need
17
- # for jsbundling, I think.
18
- if File.exist?("package.json") && Blacklight::VERSION.split(".").first == "8"
16
+ # BL 8.7.0 doesn't seem to need anything, but BL8 before that the automatic BL
17
+ # install process doesn't do everything we need.
18
+ #
19
+ # By manually triggering the BL8 assets:propshaft generator, we can get what we need
20
+ # for jsbundling, even though it's named confusingly for that, it works in these
21
+ # versions.
22
+ if File.exist?("package.json") && Gem::Requirement.create("~> 8.0", "< 8.7.0").satisfied_by?(Gem::Version.new(Blacklight::VERSION))
19
23
  generate "blacklight:assets:propshaft"
20
24
  end
21
25
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blacklight_range_limit
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0.beta2
4
+ version: 9.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-12-03 00:00:00.000000000 Z
12
+ date: 2025-01-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: blacklight
@@ -250,6 +250,7 @@ files:
250
250
  - spec/components/range_facet_component_spec.rb
251
251
  - spec/components/range_form_component_spec.rb
252
252
  - spec/components/range_segments_component_spec.rb
253
+ - spec/controllers/range_limit_action_method_spec.rb
253
254
  - spec/features/blacklight_range_limit_spec.rb
254
255
  - spec/features/run_through_spec.rb
255
256
  - spec/fixtures/solr_documents/unknown_year.yml
@@ -290,6 +291,7 @@ test_files:
290
291
  - spec/components/range_facet_component_spec.rb
291
292
  - spec/components/range_form_component_spec.rb
292
293
  - spec/components/range_segments_component_spec.rb
294
+ - spec/controllers/range_limit_action_method_spec.rb
293
295
  - spec/features/blacklight_range_limit_spec.rb
294
296
  - spec/features/run_through_spec.rb
295
297
  - spec/fixtures/solr_documents/unknown_year.yml