Refactor specs for Api::V0::FollowsController (#5239)

This commit is contained in:
rhymes 2019-12-24 19:14:39 +01:00 committed by Ben Halpern
parent 4cec45fcd3
commit b0343d99c3
2 changed files with 34 additions and 33 deletions

View file

@ -0,0 +1,34 @@
require "rails_helper"
RSpec.describe "Api::V0::FollowsController", type: :request do
describe "POST /api/follows" do
it "returns unauthorized if user is not signed in" do
post "/api/follows", params: { users: [] }
expect(response).to have_http_status(:unauthorized)
end
context "when user is authorized" do
let_it_be(:user) { create(:user) }
let_it_be(:users_hash) { [{ id: create(:user).id }, { id: create(:user).id }] }
before do
sign_in user
end
it "returns the number of followed users" do
post "/api/follows", params: { users: users_hash }
json_response = JSON.parse(response.body)
expect(json_response["outcome"]).to include("#{users_hash.size} users")
end
it "creates follows" do
sign_in user
expect do
perform_enqueued_jobs do
post "/api/follows", params: { users: users_hash }
end
end.to change(Follow, :count).by(users_hash.size)
end
end
end
end

View file

@ -1,33 +0,0 @@
require "rails_helper"
RSpec.describe "FollowsApi", type: :request do
let(:user) { create(:user) }
let(:user2) { create(:user) }
let(:user3) { create(:user) }
let(:user4) { create(:user) }
let(:user5) { create(:user) }
let(:users_hash) do
[{ id: user2.id }, { id: user3.id }, { id: user4.id }, { id: user5.id }]
end
describe "POST /api/follows" do
it "returns unauthorized if user not signed in" do
post "/api/follows", params: { users: users_hash }
expect(response).to have_http_status(:unauthorized)
end
it "makes successful ping" do
sign_in user
post "/api/follows", params: { users: users_hash }
expect(response.body).to include("outcome")
end
it "creates follows" do
sign_in user
perform_enqueued_jobs do
post "/api/follows", params: { users: users_hash }
end
expect(Follow.all.size).to eq(users_hash.size)
end
end
end