diff --git a/spec/controllers/related_contents_controller_spec.rb b/spec/controllers/related_contents_controller_spec.rb index 791276f1d..184299b81 100644 --- a/spec/controllers/related_contents_controller_spec.rb +++ b/spec/controllers/related_contents_controller_spec.rb @@ -10,4 +10,48 @@ describe RelatedContentsController do end.to raise_error ActiveRecord::RecordNotFound end end + + describe "#score_positive" do + it "increases the score of both the related content and its opposite" do + user = create(:user, :level_two) + related_content = create(:related_content, author: create(:user)) + opposite_content = related_content.opposite_related_content + + sign_in user + + put :score_positive, params: { id: related_content, format: :js } + + score = related_content.related_content_scores + .find_by(user: user, related_content: related_content) + .value + opposite_score = opposite_content.related_content_scores + .find_by(user: user, related_content: opposite_content) + .value + + expect(score).to eq(1) + expect(opposite_score).to eq(1) + end + end + + describe "#score_negative" do + it "decreases the score of both the related content and its opposite" do + user = create(:user, :level_two) + related_content = create(:related_content, author: create(:user)) + opposite_content = related_content.opposite_related_content + + sign_in user + + put :score_negative, params: { id: related_content, format: :js } + + score = related_content.related_content_scores + .find_by(user: user, related_content: related_content) + .value + opposite_score = opposite_content.related_content_scores + .find_by(user: user, related_content: opposite_content) + .value + + expect(score).to eq(-1) + expect(opposite_score).to eq(-1) + end + end end diff --git a/spec/shared/system/relationable.rb b/spec/shared/system/relationable.rb index 4b744fe35..c9faf9221 100644 --- a/spec/shared/system/relationable.rb +++ b/spec/shared/system/relationable.rb @@ -136,7 +136,7 @@ shared_examples "relationable" do |relationable_model_name| end scenario "related content can be scored positively" do - related_content = create(:related_content, parent_relationable: relationable, child_relationable: related1, author: build(:user)) + create(:related_content, parent_relationable: relationable, child_relationable: related1, author: build(:user)) login_as(user) visit polymorphic_path(relationable) @@ -147,13 +147,10 @@ shared_examples "relationable" do |relationable_model_name| expect(page).not_to have_link "Yes" expect(page).not_to have_link "No" end - - expect(related_content.related_content_scores.find_by(user_id: user.id, related_content_id: related_content.id).value).to eq(1) - expect(related_content.opposite_related_content.related_content_scores.find_by(user_id: user.id, related_content_id: related_content.opposite_related_content.id).value).to eq(1) end scenario "related content can be scored negatively" do - related_content = create(:related_content, parent_relationable: relationable, child_relationable: related1, author: build(:user)) + create(:related_content, parent_relationable: relationable, child_relationable: related1, author: build(:user)) login_as(user) visit polymorphic_path(relationable) @@ -164,9 +161,6 @@ shared_examples "relationable" do |relationable_model_name| expect(page).not_to have_link "Yes" expect(page).not_to have_link "No" end - - expect(related_content.related_content_scores.find_by(user_id: user.id, related_content_id: related_content.id).value).to eq(-1) - expect(related_content.opposite_related_content.related_content_scores.find_by(user_id: user.id, related_content_id: related_content.opposite_related_content.id).value).to eq(-1) end scenario "if related content has negative score it will be hidden" do