end
test 'get achievements' do
+ FactoryGirl.create :achievement, :user => @user, :task => @task
get "/achievements.json", :auth_token => @auth_token
assert_response :success
as = JSON.parse @response.body
- assert_equal as.map { |a| a['id'] }.sort, @user.achievements.map(&:id).sort
+ assert_equal @user.achievements.map(&:result).sort, as.map { |a| a['result'] }.sort
end
test 'add an achievement' do
- post "/achievements.json", :auth_token => @auth_token, :achievement => { :task_id => @task.id, :result => '100' }
- assert_response :created
+ put "/tasks/#{@task.id}/achievement.json", :auth_token => @auth_token, :achievement => { :result => '100' }
+ assert_response :success
j = JSON.parse @response.body
assert_equal @task.id, j['task_id']
assert_equal '100', j['result']
end
test 'update an achievement' do
- post '/achievements.json', :auth_token => @auth_token, :achievement => { :task_id => @task.id, :result => '1, 4, 7' }
- assert_response :created
- achievement = JSON.parse @response.body
+ put "/tasks/#{@task.id}/achievement.json", :auth_token => @auth_token, :achievement => { :result => '1, 4, 7' }
+ assert_response :success
- put "/achievements/#{achievement['id']}.json", :auth_token => @auth_token, :achievement => { :result => '2,0,10' }
+ put "/tasks/#{@task.id}/achievement.json", :auth_token => @auth_token, :achievement => { :result => '2,0,10' }
assert_response :success
- get "/achievements/#{achievement['id']}.json", :auth_token => @auth_token
- alt = JSON.parse @response.body
- assert_equal '2,4,10', alt['result']
+ get "/tasks/#{@task.id}/achievement.json", :auth_token => @auth_token
+ achievement = JSON.parse @response.body
+ assert_equal '2,4,10', achievement['result']
end
test 'failed to update an achievement' do
- post '/achievements.json', :auth_token => @auth_token, :achievement => { :task_id => @task.id, :result => '1, 4, 7' }
- assert_response :created
- achievement = JSON.parse @response.body
+ put "/tasks/#{@task.id}/achievement.json", :auth_token => @auth_token, :achievement => { :result => '1, 4, 7' }
+ assert_response :success
- put "/achievements/#{achievement['id']}.json", :auth_token => @auth_token, :achievement => { :result => '2,0' }
+ put "/tasks/#{@task.id}/achievement.json", :auth_token => @auth_token, :achievement => { :result => '2,0' }
assert_response 422
j = JSON.parse @response.body
assert j.has_key?('result')
- get "/achievements/#{achievement['id']}.json", :auth_token => @auth_token
- alt = JSON.parse @response.body
- assert_equal achievement['result'], alt['result']
+ get "/tasks/#{@task.id}/achievement.json", :auth_token => @auth_token
+ achievement = JSON.parse @response.body
+ assert_equal '1,4,7', achievement['result']
end
test 'create new achievement via /tasks/:task_id/achievement' do