From 81584779cb1795d2fe7827e054bbe245712528a2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 5 May 2017 02:23:01 +0200 Subject: More robust PuSH subscription refreshes (#2799) * Fix #2473 - Use sidekiq scheduler to refresh PuSH subscriptions instead of cron Fix an issue where / in domain would raise exception in TagManager#normalize_domain PuSH subscriptions refresh done in a round-robin way to avoid hammering a single server's hub in sequence. Correct handling of failures/retries through Sidekiq (see also #2613). Optimize Account#with_followers scope. Also, since subscriptions are now delegated to Sidekiq jobs, an uncaught exception will not stop the entire refreshing operation halfway through Fix #2702 - Correct user agent header on outgoing http requests * Add test for SubscribeService * Extract #expiring_accounts into method * Make mastodon:push:refresh no-op * Queues are now defined in sidekiq.yml * Queues are now in sidekiq.yml --- spec/services/follow_service_spec.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'spec/services/follow_service_spec.rb') diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb index 2ce0fa464..bda5daee1 100644 --- a/spec/services/follow_service_spec.rb +++ b/spec/services/follow_service_spec.rb @@ -53,10 +53,11 @@ RSpec.describe FollowService do end describe 'unlocked account' do - let(:bob) { Fabricate(:user, email: 'bob@example.com', account: Fabricate(:account, username: 'bob', domain: 'example.com', salmon_url: 'http://salmon.example.com')).account } + let(:bob) { Fabricate(:user, email: 'bob@example.com', account: Fabricate(:account, username: 'bob', domain: 'example.com', salmon_url: 'http://salmon.example.com', hub_url: 'http://hub.example.com')).account } before do stub_request(:post, "http://salmon.example.com/").to_return(:status => 200, :body => "", :headers => {}) + stub_request(:post, "http://hub.example.com/").to_return(status: 202) subject.call(sender, bob.acct) end @@ -70,6 +71,10 @@ RSpec.describe FollowService do xml.match(TagManager::VERBS[:follow]) }).to have_been_made.once end + + it 'subscribes to PuSH' do + expect(a_request(:post, "http://hub.example.com/")).to have_been_made.once + end end end end -- cgit