From 397281eab62cd3ba4884d6a172209dbb66897752 Mon Sep 17 00:00:00 2001 From: Seth Call Date: Fri, 30 Nov 2012 10:39:35 -0600 Subject: [PATCH] * VRFS-98 one test to verify you can't create duplicatie join_requests --- app/views/api_join_requests/join_request.rabl | 1 + spec/requests/join_requests_api_spec.rb | 13 +++++++++++++ spec/requests/music_session_pages_spec.rb | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/views/api_join_requests/join_request.rabl b/app/views/api_join_requests/join_request.rabl index 5f9f63d6a..a879ee6f2 100644 --- a/app/views/api_join_requests/join_request.rabl +++ b/app/views/api_join_requests/join_request.rabl @@ -1,6 +1,7 @@ object @join_request attributes :id, :text +attributes :music_session_id => :music_session child(:user => :user) { attributes :id, :name diff --git a/spec/requests/join_requests_api_spec.rb b/spec/requests/join_requests_api_spec.rb index 38c684434..d73c8370e 100644 --- a/spec/requests/join_requests_api_spec.rb +++ b/spec/requests/join_requests_api_spec.rb @@ -78,4 +78,17 @@ describe "Join Request API", :type => :api do get "/api/join_requests/#{join_request["id"]}.json", "CONTENT_TYPE" => 'application/json' last_response.status.should == 404 end + + it "can't create duplicate join_request" do + login(other) + + post '/api/join_requests.json', { :music_session => user.music_sessions[0].id, :text => "lemme in" }.to_json, "CONTENT_TYPE" => 'application/json' + last_response.status.should == 201 + join_request = JSON.parse(last_response.body) + + post '/api/join_requests.json', { :music_session => user.music_sessions[0].id, :text => "lemme in" }.to_json, "CONTENT_TYPE" => 'application/json' + last_response.status.should == 422 + join_request = JSON.parse(last_response.body) + join_request["errors"]["user_id"].should == ["has already been taken"] + end end diff --git a/spec/requests/music_session_pages_spec.rb b/spec/requests/music_session_pages_spec.rb index b0a6154ba..b0ea561e5 100644 --- a/spec/requests/music_session_pages_spec.rb +++ b/spec/requests/music_session_pages_spec.rb @@ -405,7 +405,7 @@ describe "Music Session API ", :type => :api do get last_response.headers["Location"] + ".json", "CONTENT_TYPE" => 'application/json' join_request = JSON.parse(last_response.body) - + # pop back to user1 and allow user2 to get in login(user) post '/api/invitations.json', {:music_session => music_session["id"], :receiver => user2.id, :join_request => join_request["id"]}.to_json, "CONTENT_TYPE" => 'application/json'