From b007ba148734eb523a251345beeb253b43725eec Mon Sep 17 00:00:00 2001
From: Sarah Mei <sarahmei@gmail.com>
Date: Tue, 19 Oct 2010 22:57:55 -0700
Subject: [PATCH] Fixed cucumber features. Backfilled tests for
 AspectsController#create.

---
 app/controllers/aspects_controller.rb       |  3 +-
 spec/controllers/aspects_controller_spec.rb | 38 +++++++++++++++++----
 2 files changed, 34 insertions(+), 7 deletions(-)

diff --git a/app/controllers/aspects_controller.rb b/app/controllers/aspects_controller.rb
index 35ddbaec9f..53a696a475 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 19bb7bf5d3..81571fb547 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
-- 
GitLab