Commit f045d65

mo khan <mo@mokhan.ca>
2016-07-04 17:39:50
remove deprecation warnings from controller tests.
1 parent 50b7aee
app/controllers/workouts_controller.rb
@@ -10,9 +10,9 @@ class WorkoutsController < ApplicationController
   end
 
   def create
-    workout = current_user.workouts.create!(
-      secure_params.merge!(occurred_at: DateTime.now)
-    )
+    workout = current_user.workouts.build(secure_params)
+    workout.occurred_at = DateTime.now
+    workout.save!
     redirect_to edit_workout_path(workout)
   end
 
spec/controllers/application_controller_spec.rb
@@ -3,7 +3,7 @@ require "rails_helper"
 describe ApplicationController, type: :controller do
   controller do
     def index
-      render text: "WHAT?"
+      render body: "WHAT?"
     end
   end
 
spec/controllers/gyms_controller_spec.rb
@@ -21,7 +21,7 @@ describe GymsController do
     end
 
     it "returns matching results" do
-      get :index, q: "sait"
+      get :index, params: { q: "sait" }
 
       expect(assigns(:gyms)).to match_array([sait])
       expect(response).to be_ok
@@ -32,7 +32,7 @@ describe GymsController do
       yelp = double
       allow(Search).to receive(:yelp).and_return(yelp)
       allow(yelp).to receive(:for).and_return(Kaminari.paginate_array([gym]))
-      get :index, q: "sait", source: "yelp"
+      get :index, params: { q: "sait", source: "yelp" }
 
       expect(assigns(:gyms)).to match_array([gym])
       expect(response).to be_ok
@@ -58,14 +58,16 @@ describe GymsController do
     context "valid params" do
       before :each do
         VCR.use_cassette("geo-location-sait") do
-          post :create, gym: {
-            name: "SAIT",
-            location_attributes: {
-              address: "1301 16 Ave NW",
-              city: "Calgary",
-              region: "AB",
-              country: "CA",
-              postal_code: "T2M 0L4",
+          post :create, params: {
+            gym: {
+              name: "SAIT",
+              location_attributes: {
+                address: "1301 16 Ave NW",
+                city: "Calgary",
+                region: "AB",
+                country: "CA",
+                postal_code: "T2M 0L4",
+              }
             }
           }
         end
@@ -101,7 +103,7 @@ describe GymsController do
       end
 
       it "returns a json response" do
-        xhr :post, :create, yelp_id: yelp_id
+        post :create, params: { yelp_id: yelp_id }, xhr: true
         json = JSON.parse(response.body)
         expect(json["yelp_id"]).to eql(yelp_id)
         expect(json["name"]).to eql(gym.name)
@@ -111,7 +113,7 @@ describe GymsController do
 
     context "invalid params" do
       before :each do
-        post :create, gym: { name: "" }
+        post :create, params: { gym: { name: "" } }
       end
 
       it "displays an error" do
@@ -128,7 +130,7 @@ describe GymsController do
   describe "#show" do
     it "loads the gym" do
       gym = create(:gym)
-      get :show, id: gym.id
+      get :show, params: { id: gym.id }
       expect(assigns(:gym)).to eql(gym)
     end
   end
spec/controllers/profiles_controller_spec.rb
@@ -13,14 +13,14 @@ describe ProfilesController do
       let(:other_user) { create(:user) }
 
       it "loads the user's profile" do
-        get :show, id: user.to_param
+        get :show, params: { id: user.to_param }
         expect(assigns(:user)).to eql(user)
         expect(assigns(:profile)).to eql(user.profile)
         expect(assigns(:program)).to eql(Program.stronglifts)
       end
 
       it "loads the other user's profile" do
-        get :show, id: other_user.to_param
+        get :show, params: { id: other_user.to_param }
         expect(assigns(:user)).to eql(other_user)
         expect(assigns(:profile)).to eql(other_user.profile)
         expect(assigns(:program)).to eql(Program.stronglifts)
@@ -31,13 +31,13 @@ describe ProfilesController do
       let(:other_user) { create(:user) }
 
       it "loads the user's profile into an edit view" do
-        get :edit, id: user.to_param
+        get :edit, params: { id: user.to_param }
         expect(assigns(:profile)).to eql(user.profile)
         expect(assigns(:program)).to eql(Program.stronglifts)
       end
 
       it "will not load the other user's profile into an edit view" do
-        get :edit, id: other_user.to_param
+        get :edit, params: { id: other_user.to_param }
         expect(assigns(:profile)).to eql(user.profile)
         expect(assigns(:program)).to eql(Program.stronglifts)
       end
@@ -45,7 +45,7 @@ describe ProfilesController do
 
     describe "#update" do
       it "updates the user profile" do
-        patch :update, id: user.to_param, profile: { gender: "male" }
+        patch :update, params: { id: user.to_param, profile: { gender: "male" } }
         user.reload
         expect(user.profile.male?).to be_truthy
         expect(response).to redirect_to(profile_path(user.profile))
@@ -54,7 +54,7 @@ describe ProfilesController do
       it 'saves the users home gym' do
         gym = create(:gym)
 
-        patch :update, id: user.to_param, profile: { gym_id: gym.id }
+        patch :update, params: { id: user.to_param, profile: { gym_id: gym.id } }
 
         expect(user.reload.profile.gym).to eql(gym)
       end
@@ -67,7 +67,7 @@ describe ProfilesController do
 
     describe "#show" do
       it "loads the user's profile" do
-        get :show, id: user.to_param
+        get :show, params: { id: user.to_param }
         expect(assigns(:user)).to be_nil
         expect(assigns(:program)).to be_nil
       end
@@ -75,7 +75,7 @@ describe ProfilesController do
 
     describe "#edit" do
       it "loads the user's profile into an edit view" do
-        get :edit, id: user.to_param
+        get :edit, params: { id: user.to_param }
         expect(assigns(:user)).to be_nil
         expect(assigns(:program)).to be_nil
       end
spec/controllers/programs_controller_spec.rb
@@ -11,7 +11,7 @@ describe ProgramsController do
     let(:program) { create(:program) }
 
     it "loads the program" do
-      get :show, id: program.to_param
+      get :show, params: { id: program.to_param }
       expect(assigns(:program)).to eql(program)
     end
   end
spec/controllers/registrations_controller_spec.rb
@@ -18,11 +18,13 @@ describe RegistrationsController do
 
       before :each do
         allow(UserMailer).to receive(:registration_email).and_return(mailer)
-        post :create, user: {
-          username: username,
-          password: password,
-          email: email,
-          terms_and_conditions: "1"
+        post :create, params: {
+          user: {
+            username: username,
+            password: password,
+            email: email,
+            terms_and_conditions: "1"
+          }
         }
       end
 
@@ -59,11 +61,13 @@ describe RegistrationsController do
 
     context "when the parameters provided are invalid" do
       before :each do
-        post :create, user: {
-          username: "",
-          password: password,
-          email: email,
-          terms_and_conditions: "1"
+        post :create, params: {
+          user: {
+            username: "",
+            password: password,
+            email: email,
+            terms_and_conditions: "1"
+          }
         }
       end
 
spec/controllers/sessions_controller_spec.rb
@@ -23,29 +23,29 @@ describe SessionsController do
 
     context "when credentials are correct" do
       it "logs you in with email" do
-        post :create, { user: { username: user.email, password: "password" } }
+        post :create, params: { user: { username: user.email, password: "password" } }
         expect(session[:user_id]).to eql(UserSession.last.id)
       end
 
       it "logs you in with username" do
-        post :create, { user: { username: user.username, password: "password" } }
+        post :create, params: { user: { username: user.username, password: "password" } }
         expect(session[:user_id]).to eql(UserSession.last.id)
       end
 
       it "redirects to the dashboard" do
-        post :create, { user: { username: user.username, password: "password" } }
+        post :create, params: { user: { username: user.username, password: "password" } }
         expect(response).to redirect_to(dashboard_path)
       end
     end
 
     context "when credentials are incorrect" do
       it "displays errors" do
-        post :create, { user: { username: user.username, password: "wrong" } }
+        post :create, params: { user: { username: user.username, password: "wrong" } }
         expect(flash[:warning]).to_not be_empty
       end
 
       it "redirects to the login page" do
-        post :create, { user: { username: user.username, password: "wrong" } }
+        post :create, params: { user: { username: user.username, password: "wrong" } }
         expect(response).to redirect_to(new_session_path)
       end
     end
@@ -59,7 +59,7 @@ describe SessionsController do
       it "logs you out" do
         session[:user_id] = user_session.id
 
-        delete :destroy, id: user.id
+        delete :destroy, params: { id: user.id }
 
         expect(session[:user_id]).to be_nil
         expect(user_session.reload.revoked_at).to be_present
spec/controllers/sets_controller_spec.rb
@@ -15,9 +15,12 @@ describe SetsController do
       workout.update!(occurred_at: DateTime.now, body_weight: 225)
       set = workout.sets.first
 
-      xhr :patch, :update, id: set.id, set: {
-        actual_weight: 315,
-        actual_repetitions: 5,
+      patch :update, xhr: true, params: {
+        id: set.id,
+        set: {
+          actual_weight: 315,
+          actual_repetitions: 5,
+        }
       }
       expect(response).to have_http_status(:ok)
       expect(set.reload.actual_repetitions).to eql(5)
spec/controllers/workouts_controller_spec.rb
@@ -41,9 +41,11 @@ describe WorkoutsController do
     let(:body_weight) { rand(250.0).lbs }
 
     it "creates a new workout" do
-      post :create, workout: {
-        routine_id: routine_b.id,
-        body_weight: body_weight
+      post :create, params: {
+        workout: {
+          routine_id: routine_b.id,
+          body_weight: body_weight
+        }
       }
       expect(user.reload.workouts.count).to eql(1)
       expect(user.last_routine).to eql(routine_b)
@@ -52,15 +54,17 @@ describe WorkoutsController do
     end
 
     it "creates the workout with the selected exercises" do
-      post :create, workout: {
-        routine_id: routine_b.id,
-        body_weight: body_weight,
-        exercise_sets_attributes: [{
-          exercise_id: squat.id,
-          target_repetitions: 5,
-          target_weight: 200,
-          type: "WorkSet",
-        }]
+      post :create, params: {
+        workout: {
+          routine_id: routine_b.id,
+          body_weight: body_weight,
+          exercise_sets_attributes: [{
+            exercise_id: squat.id,
+            target_repetitions: 5,
+            target_weight: 200,
+            type: "WorkSet",
+          }]
+        }
       }
 
       expect(user.reload.workouts.count).to eql(1)
@@ -77,7 +81,7 @@ describe WorkoutsController do
     let(:workout) { create(:workout, user: user) }
 
     it "loads the workouts" do
-      get :edit, id: workout.id
+      get :edit, params: { id: workout.id }
       expect(assigns(:workout)).to eql(workout)
     end
   end