docbrown/spec/requests/follows_api_spec.rb
John Curcio 157a6f1ef1 Add pagination to followers and following page in dashboard (#258) (#4375) [deploy]
* Add infinite scroll to followers list (#258)

* Refactor fetchNext function for clarity (#258)

* Sepparate following tab into multiple tabs to support infinite scroll (#258)

* Add infinite scroll to following pages (#258)

* Add tests to infinite scroll api

* Refactor dashboard loading text

* Refactor infine scroll function

* Fix duplicated entries problem in infinite scrolling

* Switch randomized attributes to sequential to avoid InvalidRecord error

* Add acceptance tests for infinite scroll

* Remove unused following method

* parameterize limit per page for followers and followings

* Split follows endpoint into followers and followings

* Authenticate user with api key in followers and followings

* Split followers endpoint into users and organizations

* Add redundant html to sublist partial

* Speed up infinite scroll tests

* Refactor api json responses to use partials

* Authenticate api user before follows create

* Resolve conflicts on scrolling js

* Improve partials organization and fix organization username bug

* Improve readability of unauthorized test

* Use let! to create scrolling test data

* Fix not working podcasts link

* Refactor initScrolling to remove linting errors

* Fix codeclimate coding style issue

* Test tags forms and podcasts hyperlinks

* Fix eslint issue with double equals

* Improve before_action usage and readability
2019-11-20 18:21:18 -05:00

33 lines
936 B
Ruby

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