require 'spec_helper' require 'sorting_helper' describe SortingHelper, type: [:helper] do before do def controller.default_url_options { controller: :application } end end describe '#sorting_url' do it 'pass reversed sorting url and current direction to given block' do controller.params[:sort] = '-column' helper.sorting_url(:column) do |url, direction| expect(url).to eq('/?sort=column') expect(direction).to eq(:desc) end controller.params[:sort] = 'column' helper.sorting_url(:column) do |url, direction| expect(url).to eq('/?sort=-column') expect(direction).to eq(:asc) end end it 'default direction is asc' do helper.sorting_url(:column) do |url, direction| expect(url).to eq('/?sort=-column') expect(direction).to eq(:asc) end end end describe '#sorting_link' do it 'generates html link for given column and label' do expect(helper.sorting_link(:column, 'label')).to eq('label') end it 'inverts sorting for current column' do controller.params[:sort] = 'column' expect(helper.sorting_link(:column, 'label')).to eq('label ▴') controller.params[:sort] = '-column' expect(helper.sorting_link(:column, 'label')).to eq('label ▾') end end end