diff --git a/app/controllers/legislation/processes_controller.rb b/app/controllers/legislation/processes_controller.rb index 51b353395..359527b43 100644 --- a/app/controllers/legislation/processes_controller.rb +++ b/app/controllers/legislation/processes_controller.rb @@ -117,12 +117,7 @@ class Legislation::ProcessesController < Legislation::BaseController end def set_random_seed - seed = begin - Float(params[:random_seed] || session[:random_seed] || (rand(99) / 100.0)) - rescue - 0 - end - + seed = (params[:random_seed] || session[:random_seed] || (rand(99) / 100.0)).to_f session[:random_seed] = seed params[:random_seed] = seed seed = (-1..1).cover?(seed) ? seed : 1 diff --git a/spec/features/legislation/proposals_spec.rb b/spec/features/legislation/proposals_spec.rb index d956964c5..3a40ad43f 100644 --- a/spec/features/legislation/proposals_spec.rb +++ b/spec/features/legislation/proposals_spec.rb @@ -64,6 +64,19 @@ feature 'Legislation Proposals' do expect(legislation_proposals_order).to eq(first_page_proposals_order) end + scenario 'Does not crash when the seed is not a number' do + create_list( + :legislation_proposal, + (Legislation::Proposal.default_per_page + 2), + process: process + ) + + login_as user + visit legislation_process_proposals_path(process, random_seed: "Spoof") + + expect(page).to have_content "You're on page 1" + end + context 'Selected filter' do scenario 'apperars even if there are not any selected poposals' do create(:legislation_proposal, legislation_process_id: process.id)