Merge branch 'master' into glitch-soc/tentative-merge
Conflicts: README.md app/controllers/statuses_controller.rb app/lib/feed_manager.rb config/navigation.rb spec/lib/feed_manager_spec.rb Conflicts were resolved by taking both versions for each change. This means the two filter systems (glitch-soc's keyword mutes and tootsuite's custom filters) are in place, which will be changed in a follow-up commit.
This commit is contained in:
@ -454,77 +454,6 @@ RSpec.describe Account, type: :model do
|
||||
end
|
||||
end
|
||||
|
||||
describe '.triadic_closures' do
|
||||
let!(:me) { Fabricate(:account) }
|
||||
let!(:friend) { Fabricate(:account) }
|
||||
let!(:friends_friend) { Fabricate(:account) }
|
||||
let!(:both_follow) { Fabricate(:account) }
|
||||
|
||||
before do
|
||||
me.follow!(friend)
|
||||
friend.follow!(friends_friend)
|
||||
|
||||
me.follow!(both_follow)
|
||||
friend.follow!(both_follow)
|
||||
end
|
||||
|
||||
it 'finds accounts you dont follow which are followed by accounts you do follow' do
|
||||
expect(described_class.triadic_closures(me)).to eq [friends_friend]
|
||||
end
|
||||
|
||||
it 'limits by 5 with offset 0 by defualt' do
|
||||
first_degree = 6.times.map { Fabricate(:account) }
|
||||
matches = 5.times.map { Fabricate(:account) }
|
||||
first_degree.each { |account| me.follow!(account) }
|
||||
matches.each do |match|
|
||||
first_degree.each { |account| account.follow!(match) }
|
||||
first_degree.shift
|
||||
end
|
||||
|
||||
expect(described_class.triadic_closures(me)).to eq matches
|
||||
end
|
||||
|
||||
it 'accepts arbitrary limits' do
|
||||
another_friend = Fabricate(:account)
|
||||
higher_friends_friend = Fabricate(:account)
|
||||
me.follow!(another_friend)
|
||||
friend.follow!(higher_friends_friend)
|
||||
another_friend.follow!(higher_friends_friend)
|
||||
|
||||
expect(described_class.triadic_closures(me, limit: 1)).to eq [higher_friends_friend]
|
||||
end
|
||||
|
||||
it 'acceps arbitrary offset' do
|
||||
another_friend = Fabricate(:account)
|
||||
higher_friends_friend = Fabricate(:account)
|
||||
me.follow!(another_friend)
|
||||
friend.follow!(higher_friends_friend)
|
||||
another_friend.follow!(higher_friends_friend)
|
||||
|
||||
expect(described_class.triadic_closures(me, offset: 1)).to eq [friends_friend]
|
||||
end
|
||||
|
||||
context 'when you block account' do
|
||||
before do
|
||||
me.block!(friends_friend)
|
||||
end
|
||||
|
||||
it 'rejects blocked accounts' do
|
||||
expect(described_class.triadic_closures(me)).to be_empty
|
||||
end
|
||||
end
|
||||
|
||||
context 'when you mute account' do
|
||||
before do
|
||||
me.mute!(friends_friend)
|
||||
end
|
||||
|
||||
it 'rejects muted accounts' do
|
||||
expect(described_class.triadic_closures(me)).to be_empty
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#statuses_count' do
|
||||
subject { Fabricate(:account) }
|
||||
|
||||
|
5
spec/models/custom_filter_spec.rb
Normal file
5
spec/models/custom_filter_spec.rb
Normal file
@ -0,0 +1,5 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe CustomFilter, type: :model do
|
||||
|
||||
end
|
Reference in New Issue
Block a user