mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
unfollow sites when blocked
This commit is contained in:
parent
e96bce69bd
commit
c7764d3ed5
2 changed files with 42 additions and 0 deletions
|
@ -627,10 +627,23 @@ class Site < Sequel::Model
|
|||
@blocking_site_ids ||= blockings_dataset.select(:site_id).all.collect {|s| s.site_id}
|
||||
end
|
||||
|
||||
def unfollow_blocked_sites!
|
||||
blockings.each do |blocking|
|
||||
follows.each do |follow|
|
||||
follow.destroy if follow.actioning_site_id == blocking.site_id
|
||||
end
|
||||
|
||||
followings.each do |following|
|
||||
following.destroy if following.site_id == blocking.site_id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def block!(site)
|
||||
block = blockings_dataset.filter(site_id: site.id).first
|
||||
return true if block
|
||||
add_blocking site: site
|
||||
unfollow_blocked_sites!
|
||||
end
|
||||
|
||||
def unblock!(site)
|
||||
|
|
|
@ -104,6 +104,35 @@ describe 'site page' do
|
|||
visit "/browse?tag=#{@tag}"
|
||||
_(page.find('.website-Gallery .username a')['href']).must_match /\/site\/#{@blocked_site.username}/
|
||||
end
|
||||
|
||||
it 'removes follows/followings when blocking' do
|
||||
site = Fabricate :site
|
||||
not_blocked_site = Fabricate :site
|
||||
blocked_site = Fabricate :site
|
||||
|
||||
site.add_follow actioning_site: not_blocked_site
|
||||
site.add_following site: not_blocked_site
|
||||
|
||||
site.add_follow actioning_site: blocked_site
|
||||
site.add_following site: blocked_site
|
||||
|
||||
_(site.follows.count).must_equal 2
|
||||
_(site.followings.count).must_equal 2
|
||||
|
||||
page.set_rack_session id: site.id
|
||||
|
||||
visit "/site/#{blocked_site.username}"
|
||||
|
||||
click_link 'Block'
|
||||
click_button 'Block Site'
|
||||
|
||||
_(site.follows.count).must_equal 1
|
||||
_(site.followings.count).must_equal 1
|
||||
|
||||
_(site.follows.count {|s| s.actioning_site == blocked_site}).must_equal 0
|
||||
_(site.followings.count {|s| s.site == blocked_site}).must_equal 0
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
it '404s if site is banned' do
|
||||
|
|
Loading…
Add table
Reference in a new issue