Bigger random seed range. Tests added to check the randomness between browsers

This commit is contained in:
iagirre
2017-11-15 11:50:06 +01:00
parent fbb02095bb
commit 87f6f14d48
2 changed files with 47 additions and 3 deletions

View File

@@ -94,7 +94,8 @@ module Budgets
def set_random_seed
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
params[:random_seed] = nil
end

View File

@@ -1,4 +1,5 @@
require 'rails_helper'
require 'sessions_helper'
feature 'Budget Investments' do
@@ -176,12 +177,12 @@ feature 'Budget Investments' do
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'
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
@@ -206,6 +207,48 @@ feature 'Budget Investments' do
expect(current_url).to include('order=confidence_score')
expect(current_url).to include('page=1')
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