Refactor specs for Api::V0::FollowsController (#5239)
This commit is contained in:
parent
4cec45fcd3
commit
b0343d99c3
2 changed files with 34 additions and 33 deletions
34
spec/requests/api/v0/follows_spec.rb
Normal file
34
spec/requests/api/v0/follows_spec.rb
Normal 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
|
||||
|
|
@ -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
|
||||
Loading…
Add table
Reference in a new issue