Commit f045d65
Changed files (9)
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