Sha256: 4f383b9ee0eabd7b3ff9fb8a3a2c5ad1ed38322697673aca66fd6ef979a39354

Contents?: true

Size: 1.55 KB

Versions: 2

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true

##
# +Blacklight::SearchBuilder+ requires a 'scope' object, which its documentation
# describes as "the scope where the filter methods reside in."
#
# Often (usually?) this is a Controller with:
#   - +#blacklight_config+
#   - +#current_ability+
#   - +#current_user+
#   - +#params+
#   - +#repository+
#   - +#search_state_class+
#
# This provides a fake scope with more control than a generic RSpec double.
class FakeSearchBuilderScope
  ##
  # @!attribute [r] blacklight_config
  #   @return [Blacklight::Configuration]
  # @!attribute [r] current_ability
  #   @return [::Ability]
  # @!attribute [r] current_user
  #   @return [::User, nil]
  # @!attribute [r] params
  #   @return [Hash]
  # @!attribute [r] repository
  #   @return [Blacklight::AbstractRepository]
  # @!attribute [r] search_state_class
  #   @return [Blacklight::SearchState, nil]
  attr_reader :blacklight_config, :current_ability, :current_user, :params, :repository, :search_state_class

  ##
  # @param [Blacklight::Configuration] blacklight_config
  # @param [::Ability, nil] current_ability
  # @param [::User, nil] current_user
  def initialize(blacklight_config: CatalogController.blacklight_config, current_ability: nil, current_user: nil, params: {}, search_state_class: nil)
    @blacklight_config = blacklight_config
    @current_user = current_user
    @current_ability = current_ability || ::Ability.new(current_user)
    @params = params
    @repository = Blacklight::Solr::Repository.new(blacklight_config)
    @search_state_class = search_state_class
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hyrax-5.0.0 spec/support/fakes/fake_search_builder_scope.rb
hyrax-5.0.0.rc3 spec/support/fakes/fake_search_builder_scope.rb