2 require 'integration_test_helper'
4 class AccessAchievementJsonTest < ActionDispatch::IntegrationTest
5 fixtures :users, :tasks
9 @password = 'yuujincho'
10 @user.password = @password
14 test 'get achievements' do
15 auth_token = obtaion_auth_token @user.email, @password
17 get "/achievements.json", :auth_token => auth_token
18 assert_response :success
19 as = JSON.parse @response.body
20 assert_equal as.map { |a| a['id'] }.sort, @user.achievements.map(&:id).sort
23 test 'add an achievement' do
24 auth_token = obtaion_auth_token @user.email, @password
27 post "/achievements.json", :auth_token => auth_token, :achievement => { :task_id => task.id, :result => '100' }
28 assert_response :created
29 j = JSON.parse @response.body
30 assert_equal j['user_id'], @user.id
33 test 'update an achievement' do
34 auth_token = obtaion_auth_token @user.email, @password
37 post '/achievements.json', :auth_token => auth_token, :achievement => { :task_id => task.id, :result => '1, 4, 7' }
38 assert_response :created
39 achievement = JSON.parse @response.body
41 put "/achievements/#{achievement['id']}.json", :auth_token => auth_token, :achievement => { :result => '2,0,10' }
42 assert_response :success
44 get "/achievements/#{achievement['id']}.json", :auth_token => auth_token
45 alt = JSON.parse @response.body
46 assert_equal '2,4,10', alt['result']
49 test 'failed to update an achievement' do
50 auth_token = obtaion_auth_token @user.email, @password
53 post '/achievements.json', :auth_token => auth_token, :achievement => { :task_id => task.id, :result => '1, 4, 7' }
54 assert_response :created
55 achievement = JSON.parse @response.body
57 put "/achievements/#{achievement['id']}.json", :auth_token => auth_token, :achievement => { :result => '2,0' }
59 j = JSON.parse @response.body
60 assert j.has_key?('result')
62 get "/achievements/#{achievement['id']}.json", :auth_token => auth_token
63 alt = JSON.parse @response.body
64 assert_equal achievement['result'], alt['result']