40 lines
1.1 KiB
Ruby
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
|