diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index d1222e176..88bc11ba6 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -46,7 +46,14 @@ class UsersController < ApplicationController end end - redirect_to edit_user_path(@user) + respond_to do |format| + format.js{ + render :nothing => true, :status => 201 + } + format.all{ + redirect_to edit_user_path(@user) + } + end end def destroy diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index cad5f459a..0e95d7391 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -22,14 +22,27 @@ describe UsersController do end describe '#update' do - it "doesn't overwrite random attributes" do - params = { :id => @user.id, + before do + @params = { :id => @user.id, :user => { :diaspora_handle => "notreal@stuff.com" } } + + end + it "doesn't overwrite random attributes" do lambda { - put :update, params + put :update, @params }.should_not change(@user, :diaspora_handle) end + it 'redirects to the user edit page' do + put :update, @params + response.should redirect_to edit_user_path(@user) + end + + it 'responds with a 201 on a js request' do + put :update, @params.merge(:format => :js) + response.status.should == 201 + end + context "open aspects" do before do @index_params = {:id => @user.id, :user => {:a_ids => [@aspect.id.to_s, @aspect1.id.to_s]} }