3 class AchievementsControllerTest < ActionController::TestCase
4 include Devise::TestHelpers
8 @achievement = achievements(:one)
9 @alt_achievement = achievements :two
13 test "should get index" do
15 assert_response :success
16 assert_not_nil assigns(:achievements)
19 test "should get new" do
21 assert_response :success
24 test "should create achievement" do
25 assert_difference('Achievement.count') do
26 post :create, achievement: { result: @achievement.result }
29 assert_redirected_to achievement_path(assigns(:achievement))
32 test "should show achievement" do
33 get :show, id: @achievement
34 assert_response :success
37 test "should get edit" do
38 get :edit, id: @achievement
39 assert_response :success
42 test "should update achievement" do
43 put :update, id: @achievement, achievement: { result: @achievement.result }
44 assert_redirected_to achievement_path(assigns(:achievement))
47 test "should destroy achievement" do
48 assert_difference('Achievement.count', -1) do
49 delete :destroy, id: @achievement
52 assert_redirected_to achievements_path
55 test "should not show another user's achievement" do
56 get :show, :id => @alt_achievement.id
57 assert_redirected_to achievements_path
58 assert_not_nil flash.alert
61 test "should not edit another user's achievement" do
62 get :edit, :id => @alt_achievement.id
63 assert_redirected_to achievements_path
64 assert_not_nil flash.alert
67 test "should not update another user's achievement" do
68 put :update, :id => @alt_achievement.id, :achievement => { :result => @achievement.result }
69 assert_redirected_to achievements_path
70 assert_not_nil flash.alert
73 test "should not create achievement with the same task" do
74 assert_difference('Achievement.count', 0) do
75 post :create, :achievement => { :task_id => @achievement.task_id, :result => @achievement.result }