diff --git a/app/controllers/aspects_controller.rb b/app/controllers/aspects_controller.rb index 35ddbaec9fd217e2bb019f177c39ddf8c1e4544e..53a696a47589bafaab7ceb0f45f3644d5a0a1afa 100644 --- a/app/controllers/aspects_controller.rb +++ b/app/controllers/aspects_controller.rb @@ -20,10 +20,11 @@ class AspectsController < ApplicationController @aspect = current_user.aspect(params[:aspect]) if @aspect.valid? flash[:notice] = I18n.t('aspects.create.success') + respond_with @aspect else flash[:error] = I18n.t('aspects.create.failure') + redirect_to aspects_manage_path end - respond_with @aspect end def new diff --git a/spec/controllers/aspects_controller_spec.rb b/spec/controllers/aspects_controller_spec.rb index 19bb7bf5d3bc88712cc65095f0c01829951913b8..81571fb547157d70c3cda9343f4387d28af7618b 100644 --- a/spec/controllers/aspects_controller_spec.rb +++ b/spec/controllers/aspects_controller_spec.rb @@ -5,7 +5,8 @@ require 'spec_helper' describe AspectsController do - render_views + render_views + before do @user = Factory.create(:user) @user.aspect(:name => "lame-os") @@ -13,11 +14,36 @@ describe AspectsController do sign_in :user, @user end - it "on index sets a variable containing all a user's friends when a user is signed in" do - sign_in :user, @user - Factory.create :person - get :index - assigns[:friends].should == @user.friends + describe "#index" do + it "assigns @friends to all the user's friends" do + Factory.create :person + get :index + assigns[:friends].should == @user.friends + end end + describe "#create" do + describe "with valid params" do + it "creates an aspect" do + @user.aspects.count.should == 1 + post :create, "aspect" => {"name" => "new aspect"} + @user.reload.aspects.count.should == 2 + end + it "redirects to the aspect page" do + post :create, "aspect" => {"name" => "new aspect"} + response.should redirect_to(aspect_path(Aspect.find_by_name("new aspect"))) + end + end + describe "with invalid params" do + it "does not create an aspect" do + @user.aspects.count.should == 1 + post :create, "aspect" => {"name" => ""} + @user.reload.aspects.count.should == 1 + end + it "goes back to manage aspects" do + post :create, "aspect" => {"name" => ""} + response.should redirect_to(aspects_manage_path) + end + end + end end