docbrown/spec/services/bufferizer/main_tweet_spec.rb
Alex a7376ad10d
Move Bufferizer to services (#12171)
* Create Bufferizer::MainTweet service

* Create Bufferizer::SatelliteTweet service

* Rename text to tweet

* Create Bufferizer::FacebookPost service

* Create Bufferizer::ListingsTweet service

* Remove old Bufferizer

* Update spec wording

* Update admin_id argument

* Use constants for size limits
2021-01-08 11:17:20 -05:00

40 lines
1.1 KiB
Ruby

require "rails_helper"
RSpec.describe Bufferizer::MainTweet, type: :service do
describe "#call" do
let(:user) { create(:user) }
let(:article) { create(:article, user_id: user.id) }
context "when article is nil" do
it "doesn't raise an error" do
tweet = "test tweet"
expect { described_class.call(nil, tweet, user.id) }.not_to raise_error
end
end
context "when tweet is nil" do
it "doesn't raise an error" do
expect { described_class.call(article, nil, user.id) }.not_to raise_error
end
end
context "when admin_id is nil" do
it "doesn't raise an error" do
tweet = "test tweet"
expect { described_class.call(article, tweet, nil) }.not_to raise_error
end
end
it "sends to buffer twitter" do
tweet = "test tweet"
described_class.call(article, tweet, user.id)
expect(article.last_buffered.utc.to_i).to be > 2.minutes.ago.to_i
end
it "includes admin approver" do
tweet = "test tweet"
described_class.call(article, tweet, user.id)
expect(BufferUpdate.last.approver_user_id).to be user.id
end
end
end