docbrown/spec/services/bufferizer/facebook_post_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

42 lines
1.3 KiB
Ruby

require "rails_helper"
RSpec.describe Bufferizer::FacebookPost, type: :service do
describe "#call" do
let(:user) { create(:user) }
let(:tag) { create(:tag, buffer_profile_id_code: "test") }
let(:article) { create(:article, user_id: user.id, tags: tag.name) }
context "when article is nil" do
it "doesn't raise an error" do
post = "test post"
expect { described_class.call(nil, post, user.id) }.not_to raise_error
end
end
context "when post 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
post = "test post"
expect { described_class.call(article, post, nil) }.not_to raise_error
end
end
it "sends to buffer facebook" do
post = "test facebook post"
described_class.call(article, post, user.id)
expect(article.facebook_last_buffered.utc.to_i).to be > 2.minutes.ago.to_i
end
it "adds linkedin social tags" do
post = "test facebook post"
described_class.call(article, post, user.id)
expect(BufferUpdate.last.body_text).to include(" #programming")
expect(BufferUpdate.last.body_text).to include(" ##{article.tag_list.first}")
end
end
end