diff --git a/spec/controllers/fetprofiles_controller_spec.rb b/spec/controllers/fetprofiles_controller_spec.rb index bef4193..0c969ad 100644 --- a/spec/controllers/fetprofiles_controller_spec.rb +++ b/spec/controllers/fetprofiles_controller_spec.rb @@ -1,10 +1,9 @@ require 'spec_helper' -describe FetprofilesController, :type=> :controller do - include Devise::TestHelpers, type: :contoller +describe FetprofilesController do let(:valid_attributes) { {"vorname"=>"Neuer Vorname"} } let(:valid_session) { {locale: :de} } - + extend ControllerMacros describe "GET index" do let(:action) { get :index, {}, valid_session} it "has a 200 status code" do @@ -44,12 +43,9 @@ describe FetprofilesController, :type=> :controller do describe "POST create" do let(:action){post :create, {:fetprofile => FactoryGirl.build(:fetprofile).attributes.slice(:vorname, :nachname,:desc)}} - before(:all) do - u= FactoryGirl.build(:user) - u=User.last - u.add_role(:fetuser) - sign_in u - end + +login_fet_user + describe "with valid params" do it "creates a new Fetprofile" do @@ -69,9 +65,12 @@ describe FetprofilesController, :type=> :controller do end describe "with invalid params" do + before(:each) do + Fetprofile.any_instance.stub(:save).and_return(false) + end it "assigns a newly created but unsaved fetprofile as @fetprofile" do # Trigger the behavior that occurs when invalid params are submitted - Fetprofile.any_instance.stub(:save).and_return(false) + post :create, {:fetprofile => { "vorname" => "in", "nachname"=> "ssdf", "desc"=> "dffff" }}, valid_session assigns(:fetprofile).should be_a_new(Fetprofile) end @@ -89,12 +88,7 @@ describe FetprofilesController, :type=> :controller do before(:all) do @fetprofile = FactoryGirl.create(:fetprofile) end - - before(:each) do - u= FactoryGirl.create(:user) - u.add_role(:fetuser) - sign_in u - end + login_fet_user describe "with valid params" do let(:action) { put :update, {:id => @fetprofile.to_param, :fetprofile => {"vorname"=>"neuerName"}} } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 45ca0a3..77fa791 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -10,6 +10,14 @@ require 'sunspot_test/rspec' 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| + config.include Devise::TestHelpers, :type => :controller + config.extend ControllerMacros, :type => :controller +end + + + RSpec.configure do |config| # ## Mock Framework # @@ -37,4 +45,8 @@ RSpec.configure do |config| # the seed, which is printed after each run. # --seed 1234 config.order = "random" + + + + end diff --git a/spec/support/controller_macros.rb b/spec/support/controller_macros.rb new file mode 100644 index 0000000..ef976ff --- /dev/null +++ b/spec/support/controller_macros.rb @@ -0,0 +1,14 @@ +module ControllerMacros + include Devise::TestHelpers + def login_fet_user + before(:each) do + @request.env["devise.mapping"] = Devise.mappings[:user] + user = FactoryGirl.build(:user) + user = User.find_by_email(user.email) || user + user.add_role(:fetuser) + user.confirm! + user.save + sign_in user + end + end +end diff --git a/spec/support/devise.rb b/spec/support/devise.rb new file mode 100644 index 0000000..e69de29