From 795cf7b10a4c385f8986798afd46c69dba85bbd9 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 14 May 2021 03:41:50 -0400 Subject: [PATCH] Don't show articles from blocked users in the feed (#13752) * Update element identifier for blocked articles * Update confirmation wording * Add specs --- .../contentDisplayPolicy/hideBlockedContent.js | 2 +- app/javascript/profileDropdown/blockButton.js | 3 ++- spec/services/articles/feeds/basic_spec.rb | 10 ++++++++++ .../articles/feeds/large_forem_experimental_spec.rb | 10 ++++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/javascript/contentDisplayPolicy/hideBlockedContent.js b/app/javascript/contentDisplayPolicy/hideBlockedContent.js index aecc94d9a..97c71e3d0 100644 --- a/app/javascript/contentDisplayPolicy/hideBlockedContent.js +++ b/app/javascript/contentDisplayPolicy/hideBlockedContent.js @@ -2,7 +2,7 @@ export function hideBlockedContent() { const contentUserElements = Array.from( - document.querySelectorAll('div[data-content-user-id]'), + document.querySelectorAll('article[data-content-user-id]'), ); const user = userData(); //global var const blockedUserIds = user ? user.blocked_user_ids : []; diff --git a/app/javascript/profileDropdown/blockButton.js b/app/javascript/profileDropdown/blockButton.js index 3912b61c1..5743f7302 100644 --- a/app/javascript/profileDropdown/blockButton.js +++ b/app/javascript/profileDropdown/blockButton.js @@ -48,7 +48,8 @@ export function initBlock() { `Are you sure you want to block this person? This will: - prevent them from commenting on your posts - block all notifications from them - - prevent them from messaging you via DEV Connect`, + - prevent them from messaging you via Connect + - hide their posts from your feed`, ); if (confirmBlock) { fetch(`/user_blocks`, { diff --git a/spec/services/articles/feeds/basic_spec.rb b/spec/services/articles/feeds/basic_spec.rb index 40bff84ad..624ef9a36 100644 --- a/spec/services/articles/feeds/basic_spec.rb +++ b/spec/services/articles/feeds/basic_spec.rb @@ -45,5 +45,15 @@ RSpec.describe Articles::Feeds::Basic, type: :service do result = feed.feed expect(result).not_to include(hot_story) end + + it "doesn't display blocked articles", type: :system, js: true do + selector = "article[data-content-user-id='#{hot_story.user_id}']" + sign_in user + visit root_path + expect(page).to have_selector(selector, visible: :visible) + create(:user_block, blocker: user, blocked: hot_story.user, config: "default") + visit root_path + expect(page).to have_selector(selector, visible: :hidden) + end end end diff --git a/spec/services/articles/feeds/large_forem_experimental_spec.rb b/spec/services/articles/feeds/large_forem_experimental_spec.rb index 874d8fd9e..edd1283ae 100644 --- a/spec/services/articles/feeds/large_forem_experimental_spec.rb +++ b/spec/services/articles/feeds/large_forem_experimental_spec.rb @@ -84,6 +84,16 @@ RSpec.describe Articles::Feeds::LargeForemExperimental, type: :service do create(:user_block, blocker: user, blocked: second_user, config: "default") expect(result).not_to include(hot_story) end + + it "doesn't display blocked articles", type: :system, js: true do + selector = "article[data-content-user-id='#{hot_story.user_id}']" + sign_in user + visit root_path + expect(page).to have_selector(selector, visible: :visible) + create(:user_block, blocker: user, blocked: hot_story.user, config: "default") + visit root_path + expect(page).to have_selector(selector, visible: :hidden) + end end context "when ranking is true" do