mirror of
https://github.com/mastodon/mastodon.git
synced 2025-05-07 12:16:14 +00:00
53 lines
1.5 KiB
Ruby
53 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe Fasp::AnnounceTrendWorker do
|
|
include ProviderRequestHelper
|
|
|
|
let(:status) { Fabricate(:status) }
|
|
let(:subscription) do
|
|
Fabricate(:fasp_subscription,
|
|
category: 'content',
|
|
subscription_type: 'trends',
|
|
threshold_timeframe: 15,
|
|
threshold_likes: 2)
|
|
end
|
|
let(:provider) { subscription.fasp_provider }
|
|
let!(:stubbed_request) do
|
|
stub_provider_request(provider,
|
|
method: :post,
|
|
path: '/data_sharing/v0/announcements',
|
|
response_body: {
|
|
source: {
|
|
subscription: {
|
|
id: subscription.id.to_s,
|
|
},
|
|
},
|
|
category: 'content',
|
|
eventType: 'trending',
|
|
objectUris: [status.uri],
|
|
})
|
|
end
|
|
|
|
context 'when the configured threshold is met' do
|
|
before do
|
|
Fabricate.times(2, :favourite, status:)
|
|
end
|
|
|
|
it 'sends the account uri to subscribed providers' do
|
|
described_class.new.perform(status.id, 'favourite')
|
|
|
|
expect(stubbed_request).to have_been_made
|
|
end
|
|
end
|
|
|
|
context 'when the configured threshold is not met' do
|
|
it 'does not notify any provider' do
|
|
described_class.new.perform(status.id, 'favourite')
|
|
|
|
expect(stubbed_request).to_not have_been_made
|
|
end
|
|
end
|
|
end
|