docbrown/spec/workers/users/follow_worker_spec.rb
2020-01-08 15:03:18 -05:00

40 lines
1.1 KiB
Ruby

require "rails_helper"
RSpec.describe Users::FollowWorker, type: :worker do
describe "#perform" do
let(:user) { create(:user) }
let(:followable) { create(:user) }
let(:invalid_id) { -1 }
let(:worker) { subject }
context "when followable doesn't exist" do
it "doesn't follow user" do
expect do
worker.perform(user.id, invalid_id, followable.class.name)
end.not_to change(Follow, :count)
end
end
context "when user doesn't exist" do
it "doesn't follow user" do
expect do
worker.perform(invalid_id, followable.id, followable.class.name)
end.not_to change(Follow, :count)
end
end
context "when user + followable exist" do
it "doesn't follow user with unexpected type" do
expect do
worker.perform(user.id, followable.id, "Article")
end.not_to change(Follow, :count)
end
it "follows user" do
expect do
worker.perform(user.id, followable.id, followable.class.name)
end.to change(Follow, :count).by(1)
end
end
end
end