Bigger random seed range. Tests added to check the randomness between browsers
This commit is contained in:
@@ -94,7 +94,8 @@ module Budgets
|
|||||||
|
|
||||||
def set_random_seed
|
def set_random_seed
|
||||||
if params[:order] == 'random' || params[:order].blank?
|
if params[:order] == 'random' || params[:order].blank?
|
||||||
params[:random_seed] ||= rand(1..9)
|
seed = rand(10..99) / 10.0
|
||||||
|
params[:random_seed] ||= Float(seed) rescue 0
|
||||||
else
|
else
|
||||||
params[:random_seed] = nil
|
params[:random_seed] = nil
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
require 'rails_helper'
|
require 'rails_helper'
|
||||||
|
require 'sessions_helper'
|
||||||
|
|
||||||
feature 'Budget Investments' do
|
feature 'Budget Investments' do
|
||||||
|
|
||||||
@@ -176,12 +177,12 @@ feature 'Budget Investments' do
|
|||||||
|
|
||||||
visit budget_investments_path(budget, order: 'random')
|
visit budget_investments_path(budget, order: 'random')
|
||||||
|
|
||||||
first_page_investments = all(".budget-investment h3").collect {|i| i.text }
|
first_page_investments = investments_order
|
||||||
|
|
||||||
click_link 'Next'
|
click_link 'Next'
|
||||||
expect(page).to have_content "You're on page 2"
|
expect(page).to have_content "You're on page 2"
|
||||||
|
|
||||||
second_page_investments = all(".budget-investment h3").collect {|i| i.text }
|
second_page_investments = investments_order
|
||||||
|
|
||||||
common_values = first_page_investments & second_page_investments
|
common_values = first_page_investments & second_page_investments
|
||||||
|
|
||||||
@@ -206,6 +207,48 @@ feature 'Budget Investments' do
|
|||||||
expect(current_url).to include('order=confidence_score')
|
expect(current_url).to include('order=confidence_score')
|
||||||
expect(current_url).to include('page=1')
|
expect(current_url).to include('page=1')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
scenario 'Each user as a different and consistent random budget investment order', :js do
|
||||||
|
12.times { create(:budget_investment, heading: heading) }
|
||||||
|
|
||||||
|
in_browser(:one) do
|
||||||
|
visit budget_investments_path(budget, heading: heading)
|
||||||
|
@first_user_investments_order = investments_order
|
||||||
|
end
|
||||||
|
|
||||||
|
in_browser(:two) do
|
||||||
|
visit budget_investments_path(budget, heading: heading)
|
||||||
|
@second_user_investments_order = investments_order
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(@first_user_investments_order).not_to eq(@second_user_investments_order)
|
||||||
|
|
||||||
|
in_browser(:one) do
|
||||||
|
visit budget_investments_path(budget, heading: heading)
|
||||||
|
# click_link 'Next'
|
||||||
|
# expect(page).to have_content "You're on page 2"
|
||||||
|
#
|
||||||
|
# click_link 'Previous'
|
||||||
|
# expect(page).to have_content "You're on page 1"
|
||||||
|
#
|
||||||
|
expect(investments_order).to eq(@first_user_investments_order)
|
||||||
|
end
|
||||||
|
|
||||||
|
in_browser(:two) do
|
||||||
|
visit budget_investments_path(budget, heading: heading)
|
||||||
|
# click_link 'Next'
|
||||||
|
# expect(page).to have_content "You're on page 2"
|
||||||
|
#
|
||||||
|
# click_link 'Previous'
|
||||||
|
# expect(page).to have_content "You're on page 1"
|
||||||
|
#
|
||||||
|
expect(investments_order).to eq(@second_user_investments_order)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def investments_order
|
||||||
|
all(".budget-investment h3").collect {|i| i.text }
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user