Sha256: d4d6948d09e776d9bf9ac68426bae0c77ff4ff9d88f0685dca5b296d04dfa75e

Contents?: true

Size: 1.55 KB

Versions: 1

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true
require 'spec_helper'

describe "catalog/_view_type_group" do

  let :blacklight_config do
    Blacklight::Configuration.new
  end

  before do
    allow(view).to receive(:view_label) do |view|
      view.to_s
    end

    allow(view).to receive_messages(how_sort_and_per_page?: true, blacklight_config: blacklight_config)

    controller.request.path_parameters[:action] = 'index'
  end

  it "should not display the group when there's only one option" do
    assign(:response, [])
    render partial: 'catalog/view_type_group'
    expect(rendered).to be_empty
  end

  it "should display the group" do
    assign(:response, [double])
    blacklight_config.configure do |config|
      config.view.delete(:list)
      config.view.a 
      config.view.b
      config.view.c
    end
    render partial: 'catalog/view_type_group'
    expect(rendered).to have_selector('.btn-group.view-type-group')
    expect(rendered).to have_selector('.view-type-a', :text => 'a')
    expect(rendered).to have_selector('.view-type-b', :text => 'b')
    expect(rendered).to have_selector('.view-type-c', :text => 'c')
  end


  it "should set the current view to 'active'" do
    assign(:response, [double])
    blacklight_config.configure do |config|
      config.view.delete(:list)
      config.view.a 
      config.view.b
    end
    render partial: 'catalog/view_type_group'
    expect(rendered).to have_selector('.active', :text => 'a')
    expect(rendered).to_not have_selector('.active', :text => 'b')
    expect(rendered).to have_selector('.btn', :text => 'b')
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
blacklight-6.2.0 spec/views/catalog/_view_type_group.html.erb_spec.rb