From 18a68210290ce48e039cb51db587626e0371822a Mon Sep 17 00:00:00 2001 From: Andreas Stephanides Date: Sun, 30 Aug 2015 19:03:01 +0200 Subject: [PATCH] AutoCommit Son Aug 30 19:03:01 CEST 2015 --- .../fetprofiles_controller_spec.rb | 90 ++++++++----------- spec/spec_helper.rb | 3 +- 2 files changed, 41 insertions(+), 52 deletions(-) diff --git a/spec/controllers/fetprofiles_controller_spec.rb b/spec/controllers/fetprofiles_controller_spec.rb index 554b65d..49e8ce3 100644 --- a/spec/controllers/fetprofiles_controller_spec.rb +++ b/spec/controllers/fetprofiles_controller_spec.rb @@ -1,33 +1,8 @@ require 'spec_helper' -# This spec was generated by rspec-rails when you ran the scaffold generator. -# It demonstrates how one might use RSpec to specify the controller code that -# was generated by Rails when you ran the scaffold generator. -# -# It assumes that the implementation code is generated by the rails scaffold -# generator. If you are using any extension libraries to generate different -# controller code, this generated spec may or may not pass. -# -# It only uses APIs available in rails and/or rspec-rails. There are a number -# of tools you can use to make these specs even more expressive, but we're -# sticking to rails and rspec-rails APIs to keep things simple and stable. -# -# Compared to earlier versions of this generator, there is very limited use of -# stubs and message expectations in this spec. Stubs are only used when there -# is no simpler way to get a handle on the object needed for the example. -# Message expectations are only used when there is no simpler way to specify -# that an instance is receiving a specific message. - describe FetprofilesController, :type=> :controller do include Devise::TestHelpers - # This should return the minimal set of attributes required to create a valid - # Fetprofile. As you add validations to Fetprofile, be sure to - # adjust the attributes here as well. let(:valid_attributes) { {"vorname"=>"Neuer Vorname"} } - - # This should return the minimal set of values that should be in the session - # in order to pass any filters (e.g. authentication) defined in - # FetprofilesController. Be sure to keep this updated too. let(:valid_session) { {locale: :de} } describe "GET index" do @@ -37,7 +12,7 @@ describe FetprofilesController, :type=> :controller do end it "assigns all fetprofiles as @fetprofiles" do - fetprofile = FactoryGirl.create(:fetprofile) + fetprofile = FactoryGirl.create(:fetprofile, :active=>true) get :index, {}, valid_session assigns(:fetprofiles).should eq([fetprofile]) end @@ -67,16 +42,22 @@ describe FetprofilesController, :type=> :controller do end describe "POST create" do + before(:each) do + u= FactoryGirl.create(:user) + u.add_role(:fetuser) + sign_in u + end + describe "with valid params" do it "creates a new Fetprofile" do expect { - post :create, {:fetprofile => FactoryGirl.create(:fetprofile).attributes}, valid_session + post :create, {:fetprofile => FactoryGirl.create(:fetprofile).attributes.slice(:vorname, :nachname,:desc)}, valid_session }.to change(Fetprofile, :count).by(1) end it "assigns a newly created fetprofile as @fetprofile" do - post :create, {:fetprofile => FactoryGirl.create(:fetprofile).attributes}, valid_session + post :create, {:fetprofile => FactoryGirl.create(:fetprofile).attributes.slice(:vorname, :nachname,:desc)}, valid_session assigns(:fetprofile).should be_a(Fetprofile) assigns(:fetprofile).should be_persisted end @@ -105,57 +86,64 @@ describe FetprofilesController, :type=> :controller do end describe "PUT update" do + before(:all) do + @fetprofile = FactoryGirl.create(:fetprofile) + end + before(:each) do u= FactoryGirl.create(:user) u.add_role(:fetuser) sign_in u end - describe "with valid params" do - it "updates the requested fetprofile" do - fetprofile = FactoryGirl.create(:fetprofile) - # Fetprofile.any_instance.should_receive(:update_attributes).with({"vorname"=>"neuerName"}) - expect { - put :update, {:id => fetprofile.to_param, :fetprofile => {"vorname"=>"neuerName"}}, valid_session - puts Fetprofile.find(fetprofile.id).vorname - }.to change{Fetprofile.find(fetprofile.id).vorname}#.to("neuerName") + describe "with valid params" do + let(:action) { put :update, {:id => @fetprofile.to_param, :fetprofile => {"vorname"=>"neuerName"}} } + + it "updates the requested fetprofile" do + expect { action }.to change{Fetprofile.find(@fetprofile.id).vorname}#.to("neuerName") end it "assigns the requested fetprofile as @fetprofile" do - fetprofile = FactoryGirl.create(:fetprofile) - put :update, {:id => fetprofile.to_param, :fetprofile=> {}}#, valid_session - expect(assigns(:fetprofile)).to eq(fetprofile) + action + expect(assigns(:fetprofile)).to eq(Fetprofile.find(@fetprofile.to_param)) end it "redirects to the fetprofile" do fetprofile = FactoryGirl.create(:fetprofile) - put :update, {:id => fetprofile.to_param, :fetprofile => {"vorname"=>"neuerName"}}#, valid_session + action response.should redirect_to(fetprofile) end end describe "with invalid params" do - it "assigns the fetprofile as @fetprofile" do - fetprofile = FactoryGirl.create(:fetprofile) - # Trigger the behavior that occurs when invalid params are submitted - Fetprofile.any_instance.stub(:save).and_return(false) - put :update, {:id => fetprofile.to_param, :fetprofile => { "vorname" => "invalid value" }}#, valid_session - expect(assigns(:fetprofile)).to eq(fetprofile) + let(:action) { put :update, {:id => @fetprofile.to_param, :fetprofile => {"vorname"=>"n"}} } + it "assigns the fetprofile as @fetprofile" do + Fetprofile.any_instance.stub(:save).and_return(false) + action + expect(assigns(:fetprofile)).to eq(@fetprofile) end it "re-renders the 'edit' template" do - fetprofile = FactoryGirl.create(:fetprofile) - attributes= Fetprofile.attributes - # Trigger the behavior that occurs when invalid params are submitted Fetprofile.any_instance.stub(:save).and_return(false) - put :update, {:id => fetprofile.to_param, :fetprofile => attributes}, valid_session - response.should render_template("edit") + action + expect(response).to render_template("edit") end + it "redirect to 'edit'" do + Fetprofile.any_instance.stub(:save).and_return(false) + expect(action).to redirect_to action: "edit" + end + end end describe "DELETE destroy" do + before(:each) do + u= FactoryGirl.create(:user) + u.add_role(:fetuser) + sign_in u + end + it "destroys the requested fetprofile" do fetprofile = FactoryGirl.create(:fetprofile) expect { diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 871dc71..45ca0a3 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -8,7 +8,8 @@ require 'sunspot_test/rspec' # Requires supporting ruby files with custom matchers and macros, etc, # in spec/support/ and its subdirectories. Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } - +Dir[Rails.root.join("spec/models/shared_examples/**/*.rb")].each {|f| require f} +Dir[Rails.root.join("spec/controllers/shared_examples/**/*.rb")].each {|f| require f} RSpec.configure do |config| # ## Mock Framework #