diff --git a/spec/shared/features/relationable.rb b/spec/shared/features/relationable.rb index ba3862235..f17544b38 100644 --- a/spec/shared/features/relationable.rb +++ b/spec/shared/features/relationable.rb @@ -69,35 +69,49 @@ shared_examples "relationable" do |relationable_model_name| expect(page).to have_content("Link not valid. Remember to start with #{Setting[:url]}.") end - scenario 'related content can be flagged', :js do + scenario 'related content can be scored positively', :js do related_content = create(:related_content, parent_relationable: relationable, child_relationable: related1) login_as(user) visit eval("#{relationable.class.name.downcase}_path(relationable)") within("#related-content-list") do - expect(page).to have_css("#flag-expand-related-#{related_content.opposite_related_content.id}") - find("#flag-expand-related-#{related_content.opposite_related_content.id}").click - expect(page).to have_css("#flag-drop-related-#{related_content.opposite_related_content.id}", visible: true) - click_link("flag-related-#{related_content.opposite_related_content.id}") - - expect(page).to have_css("#unflag-expand-related-#{related_content.opposite_related_content.id}") + find("#score-positive-related-#{related_content.opposite_related_content.id}").click + expect(page).to_not have_css("#score-positive-related-#{related_content.opposite_related_content.id}") end - expect(related_content.reload.flags_count).to eq(1) - expect(related_content.opposite_related_content.flags_count).to eq(1) + expect(related_content.reload.positive_score).to eq(1) + expect(related_content.opposite_related_content.reload.positive_score).to eq(1) end - scenario 'if related content has been flagged more than 5 times it will be hidden', :js do + scenario 'related content can be scored negatively', :js do related_content = create(:related_content, parent_relationable: relationable, child_relationable: related1) - related_content.flags_count = Setting['related_contents_report_threshold'].to_i + 1 - related_content.opposite_related_content.flags_count = related_content.flags_count + login_as(user) + visit eval("#{relationable.class.name.downcase}_path(relationable)") + + within("#related-content-list") do + find("#score-negative-related-#{related_content.opposite_related_content.id}").click + expect(page).to_not have_css("#score-negative-related-#{related_content.opposite_related_content.id}") + end + + expect(related_content.reload.negative_score).to eq(1) + expect(related_content.opposite_related_content.reload.negative_score).to eq(1) + end + + scenario 'if related content has negative score it will be hidden' do + related_content = create(:related_content, parent_relationable: relationable, child_relationable: related1) + + related_content.positive_score = 4 + related_content.negative_score = 20 + related_content.opposite_related_content.positive_score = 4 + related_content.opposite_related_content.negative_score = 20 related_content.save related_content.opposite_related_content.save login_as(user) + visit eval("#{relationable.class.name.downcase}_path(relationable)") expect(page).to_not have_css("#related-content-list")