diff --git a/db/migrate/20180711224810_enable_recommendations_by_default.rb b/db/migrate/20180711224810_enable_recommendations_by_default.rb new file mode 100644 index 000000000..ece94e1b8 --- /dev/null +++ b/db/migrate/20180711224810_enable_recommendations_by_default.rb @@ -0,0 +1,6 @@ +class EnableRecommendationsByDefault < ActiveRecord::Migration + def change + change_column_default :users, :recommended_debates, true + change_column_default :users, :recommended_proposals, true + end +end diff --git a/db/schema.rb b/db/schema.rb index d1d714c89..5e9247806 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20180519132610) do +ActiveRecord::Schema.define(version: 20180711224810) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -1156,8 +1156,8 @@ ActiveRecord::Schema.define(version: 20180519132610) do t.integer "failed_email_digests_count", default: 0 t.text "former_users_data_log", default: "" t.boolean "public_interests", default: false - t.boolean "recommended_debates", default: false - t.boolean "recommended_proposals", default: false + t.boolean "recommended_debates", default: true + t.boolean "recommended_proposals", default: true end add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true, using: :btree diff --git a/spec/features/account_spec.rb b/spec/features/account_spec.rb index c98c1c19a..a82f32495 100644 --- a/spec/features/account_spec.rb +++ b/spec/features/account_spec.rb @@ -189,37 +189,37 @@ feature 'Account' do Setting['feature.user.recommendations_on_proposals'] = nil end - scenario 'are disabled by default' do + scenario 'are enabled by default' do visit account_path expect(page).to have_content('Recommendations') expect(page).to have_content('Show debates recommendations') expect(page).to have_content('Show proposals recommendations') - expect(find("#account_recommended_debates")).not_to be_checked - expect(find("#account_recommended_proposals")).not_to be_checked + expect(find("#account_recommended_debates")).to be_checked + expect(find("#account_recommended_proposals")).to be_checked end - scenario "can be enabled through 'My account' page" do + scenario "can be disabled through 'My account' page" do visit account_path expect(page).to have_content('Recommendations') expect(page).to have_content('Show debates recommendations') expect(page).to have_content('Show proposals recommendations') - expect(find("#account_recommended_debates")).not_to be_checked - expect(find("#account_recommended_proposals")).not_to be_checked - - check 'account_recommended_debates' - check 'account_recommended_proposals' - - click_button 'Save changes' - expect(find("#account_recommended_debates")).to be_checked expect(find("#account_recommended_proposals")).to be_checked + uncheck 'account_recommended_debates' + uncheck 'account_recommended_proposals' + + click_button 'Save changes' + + expect(find("#account_recommended_debates")).not_to be_checked + expect(find("#account_recommended_proposals")).not_to be_checked + @user.reload - expect(@user.recommended_debates).to be(true) - expect(@user.recommended_proposals).to be(true) + expect(@user.recommended_debates).to be(false) + expect(@user.recommended_proposals).to be(false) end end diff --git a/spec/features/debates_spec.rb b/spec/features/debates_spec.rb index 9ae117349..af4c719ae 100644 --- a/spec/features/debates_spec.rb +++ b/spec/features/debates_spec.rb @@ -411,13 +411,13 @@ feature 'Debates' do Setting['feature.user.recommendations_on_debates'] = nil end - scenario "Debates can't be ordered by recommendations if there's no logged user" do + scenario "can't be sorted if there's no logged user" do visit debates_path expect(page).not_to have_selector('a', text: 'recommendations') end - scenario 'Show recommended debates on index header when user has recommendations enabled' do - user = create(:user, recommended_debates: true) + scenario 'are shown on index header when account setting is enabled' do + user = create(:user) proposal = create(:proposal, tag_list: 'Sport') create(:follow, followable: proposal, user: user) @@ -431,8 +431,8 @@ feature 'Debates' do expect(page).to have_link 'See more recommendations' end - scenario 'Should display text when there are not recommended results' do - user = create(:user, recommended_debates: true) + scenario 'should display text when there are no results' do + user = create(:user) proposal = create(:proposal, tag_list: 'Distinct_to_sport') create(:follow, followable: proposal, user: user) @@ -444,8 +444,8 @@ feature 'Debates' do expect(page).to have_content 'There are not debates related to your interests' end - scenario 'Should display text when user has not related interests' do - user = create(:user, recommended_debates: true) + scenario 'should display text when user has no related interests' do + user = create(:user) login_as(user) visit debates_path @@ -455,8 +455,8 @@ feature 'Debates' do expect(page).to have_content 'Follow proposals so we can give you recommendations' end - scenario "Debates are ordered by recommendations when there's an user logged" do - user = create(:user, recommended_debates: true) + scenario "can be sorted when there's a logged user" do + user = create(:user) proposal = create(:proposal, tag_list: 'Sport') create(:follow, followable: proposal, user: user) @@ -476,8 +476,8 @@ feature 'Debates' do expect(current_url).to include('page=1') end - scenario 'are not shown if user does not have recommendations enabled' do - user = create(:user) + scenario 'are not shown if account setting is disabled' do + user = create(:user, recommended_debates: false) proposal = create(:proposal, tag_list: 'Sport') create(:follow, followable: proposal, user: user) @@ -488,8 +488,8 @@ feature 'Debates' do expect(page).not_to have_link('recommendations') end - scenario 'Recommendations shown in index are dismissable', :js do - user = create(:user, recommended_debates: true) + scenario 'shown on index header are dismissable', :js do + user = create(:user) proposal = create(:proposal, tag_list: 'Sport') create(:follow, followable: proposal, user: user) diff --git a/spec/features/proposals_spec.rb b/spec/features/proposals_spec.rb index def5ef4d8..c8a7c47cd 100644 --- a/spec/features/proposals_spec.rb +++ b/spec/features/proposals_spec.rb @@ -735,13 +735,13 @@ feature 'Proposals' do Setting['feature.user.recommendations_on_proposals'] = nil end - scenario "Proposals can't be ordered by recommendations if there's no logged user" do + scenario "can't be sorted if there's no logged user" do visit proposals_path expect(page).not_to have_selector('a', text: 'recommendations') end - scenario 'Show recommended proposals on index header when user has recommendations enabled' do - user = create(:user, recommended_proposals: true) + scenario 'are shown on index header when account setting is enabled' do + user = create(:user) proposal = create(:proposal, tag_list: 'Sport') create(:follow, followable: proposal, user: user) @@ -755,8 +755,8 @@ feature 'Proposals' do expect(page).to have_link 'See more recommendations' end - scenario 'Should display text when there are not recommended results' do - user = create(:user, recommended_proposals: true) + scenario 'should display text when there are no results' do + user = create(:user) proposal = create(:proposal, tag_list: 'Distinct_to_sport') create(:follow, followable: proposal, user: user) @@ -768,8 +768,8 @@ feature 'Proposals' do expect(page).to have_content 'There are not proposals related to your interests' end - scenario 'Should display text when user has not related interests' do - user = create(:user, recommended_proposals: true) + scenario 'should display text when user has no related interests' do + user = create(:user) login_as(user) visit proposals_path @@ -779,8 +779,8 @@ feature 'Proposals' do expect(page).to have_content 'Follow proposals so we can give you recommendations' end - scenario "Proposals are ordered by recommendations when there's an user logged" do - user = create(:user, recommended_proposals: true) + scenario "can be sorted when there's a logged user" do + user = create(:user) proposal = create(:proposal, tag_list: 'Sport') create(:follow, followable: proposal, user: user) @@ -800,8 +800,8 @@ feature 'Proposals' do expect(current_url).to include('page=1') end - scenario 'are not shown if user does not have recommendations enabled' do - user = create(:user) + scenario 'are not shown if account setting is disabled' do + user = create(:user, recommended_proposals: false) proposal = create(:proposal, tag_list: 'Sport') create(:follow, followable: proposal, user: user) @@ -812,8 +812,8 @@ feature 'Proposals' do expect(page).not_to have_link('recommendations') end - scenario 'Recommendations shown in index are dismissable', :js do - user = create(:user, recommended_proposals: true) + scenario 'shown on index header are dismissable', :js do + user = create(:user) proposal = create(:proposal, tag_list: 'Sport') create(:follow, followable: proposal, user: user)