From e8bc187845b78e4a94894c69ecf930a524ad2056 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 7 Sep 2020 11:02:04 +0200 Subject: Refactor how public and tag timelines are queried (#14728) --- spec/services/fan_out_on_write_service_spec.rb | 4 +- spec/services/hashtag_query_service_spec.rb | 60 -------------------------- 2 files changed, 2 insertions(+), 62 deletions(-) delete mode 100644 spec/services/hashtag_query_service_spec.rb (limited to 'spec/services') diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb index b7fc7f7ed..538dc2592 100644 --- a/spec/services/fan_out_on_write_service_spec.rb +++ b/spec/services/fan_out_on_write_service_spec.rb @@ -28,10 +28,10 @@ RSpec.describe FanOutOnWriteService, type: :service do end it 'delivers status to hashtag' do - expect(Tag.find_by!(name: 'test').statuses.pluck(:id)).to include status.id + expect(TagFeed.new(Tag.find_by(name: 'test'), alice).get(20).map(&:id)).to include status.id end it 'delivers status to public timeline' do - expect(Status.as_public_timeline(alice).map(&:id)).to include status.id + expect(PublicFeed.new(alice).get(20).map(&:id)).to include status.id end end diff --git a/spec/services/hashtag_query_service_spec.rb b/spec/services/hashtag_query_service_spec.rb deleted file mode 100644 index 24282d2f0..000000000 --- a/spec/services/hashtag_query_service_spec.rb +++ /dev/null @@ -1,60 +0,0 @@ -require 'rails_helper' - -describe HashtagQueryService, type: :service do - describe '.call' do - let(:account) { Fabricate(:account) } - let(:tag1) { Fabricate(:tag) } - let(:tag2) { Fabricate(:tag) } - let!(:status1) { Fabricate(:status, tags: [tag1]) } - let!(:status2) { Fabricate(:status, tags: [tag2]) } - let!(:both) { Fabricate(:status, tags: [tag1, tag2]) } - - it 'can add tags in "any" mode' do - results = subject.call(tag1, { any: [tag2.name] }) - expect(results).to include status1 - expect(results).to include status2 - expect(results).to include both - end - - it 'can remove tags in "all" mode' do - results = subject.call(tag1, { all: [tag2.name] }) - expect(results).to_not include status1 - expect(results).to_not include status2 - expect(results).to include both - end - - it 'can remove tags in "none" mode' do - results = subject.call(tag1, { none: [tag2.name] }) - expect(results).to include status1 - expect(results).to_not include status2 - expect(results).to_not include both - end - - it 'ignores an invalid mode' do - results = subject.call(tag1, { wark: [tag2.name] }) - expect(results).to include status1 - expect(results).to_not include status2 - expect(results).to include both - end - - it 'handles being passed non existant tag names' do - results = subject.call(tag1, { any: ['wark'] }) - expect(results).to include status1 - expect(results).to_not include status2 - expect(results).to include both - end - - it 'can restrict to an account' do - BlockService.new.call(account, status1.account) - results = subject.call(tag1, { none: [tag2.name] }, account) - expect(results).to_not include status1 - end - - it 'can restrict to local' do - status1.account.update(domain: 'example.com') - status1.update(local: false, uri: 'example.com/toot') - results = subject.call(tag1, { any: [tag2.name] }, nil, true) - expect(results).to_not include status1 - end - end -end -- cgit