diff --git a/spec/acceptance/collections_spec.rb b/spec/acceptance/collections_spec.rb index b9d91814b18f2e849aa268a7413aac83907a2ab6..92a73342d56b601ee40946f25dd1fe5764d21e48 100644 --- a/spec/acceptance/collections_spec.rb +++ b/spec/acceptance/collections_spec.rb @@ -1,5 +1,6 @@ require 'acceptance_helpers' require 'shared/examples' +require 'shared/contexts' resource 'Collections' do header 'Accept', 'application/json' @@ -34,4 +35,39 @@ resource 'Collections' do end end + post '/v1/collections/:id/like' do + include_context "authenticate_user" + + let(:id) { collections.first.id } + + example 'Liking a collection' do + likes = collections.first.likes.count + do_request + expect(path).to eq("/v1/collections/#{id}/like") + expect(JSON.parse(response_body)['count']).to eq(likes + 1) + expect(status).to eq(201) + end + end + + delete '/v1/collections/:id/like' do + include_context "authenticate_user" + + let(:id) { collections.first.id } + + before do + create(:like, user: @user, likeable: collections.first) + end + + example 'Unliking a collection' do + likes = collections.first.likes.count + do_request + expect(path).to eq("/v1/collections/#{id}/like") + expect(JSON.parse(response_body)['count']).to eq(likes - 1) + expect(status).to eq(200) + end + end + + + + end diff --git a/spec/acceptance/learning_objects_spec.rb b/spec/acceptance/learning_objects_spec.rb index 2340ea37d63b99039b98e2719a0f0767c2f47ad1..5b01227ddcd5d66540cebd8f20f192f739adc008 100644 --- a/spec/acceptance/learning_objects_spec.rb +++ b/spec/acceptance/learning_objects_spec.rb @@ -46,4 +46,22 @@ resource 'Learning Objects' do end end + delete '/v1/learning_objects/:id/like' do + include_context "authenticate_user" + + let(:id) { learning_objects.first.id } + + before do + create(:like, user: @user, likeable: learning_objects.first) + end + + example 'Unliking a learning object' do + likes = learning_objects.first.likes.count + do_request + expect(path).to eq("/v1/learning_objects/#{id}/like") + expect(JSON.parse(response_body)['count']).to eq(likes - 1) + expect(status).to eq(200) + end + end + end diff --git a/spec/shared/contexts.rb b/spec/shared/contexts.rb index 3241f4358722ac21d478527d823fe422e7fd4473..8550f7fbdf275be72c2e8402f24670b3854b77a6 100644 --- a/spec/shared/contexts.rb +++ b/spec/shared/contexts.rb @@ -9,7 +9,8 @@ RSpec.shared_context "authenticate_user", shared_context: :metadata do let(:access_token) { @auth_headers['access-token'] } before do - @auth_headers = create(:user).create_new_auth_token + @user = create(:user) + @auth_headers = @user.create_new_auth_token end end