-
-
Save mallain/451179 to your computer and use it in GitHub Desktop.
| require 'test_helper' | |
| class Hr::AlertCollaboratorsControllerTest < ActionController::TestCase | |
| context "logged in" do | |
| setup do | |
| UserSession.create(Factory(:user)) | |
| Factory(:agency) | |
| Factory(:feedback) | |
| @alert_collaborator = Factory.stub(:alert_collaborator) | |
| @alert_collaborator.id = 1001 | |
| AlertCollaborator.stubs(:find).returns(@alert_collaborator) | |
| AlertCollaborator.stubs(:find).with(:all, anything).returns([@alert_collaborator]) | |
| end | |
| should_get_action :index | |
| should_get_action :new | |
| context "on POST to :create (valid data)" do | |
| setup do | |
| AlertCollaborator.any_instance.expects(:save).returns(true).once | |
| AlertCollaborator.any_instance.stubs(:id).returns(1001) | |
| post :create, :alert_collaborator => {} | |
| end | |
| should_assign_to :alert_collaborator, :class => AlertCollaborator | |
| should_respond_with :redirect | |
| should_redirect_to("alert_collaborator index page"){hr_alert_collaborators_path} | |
| end | |
| context "on POST to :create (invalid data)" do | |
| setup do | |
| AlertCollaborator.any_instance.expects(:save).returns(false).once | |
| post :create, :alert_collaborator => {} | |
| end | |
| should_assign_to :alert_collaborator, :class => AlertCollaborator | |
| should_respond_with :success | |
| should_render_with_layout | |
| should_render_template :new | |
| should_not_set_the_flash | |
| end | |
| context "on GET to :show" do | |
| setup do | |
| get :show, {:id => @alert_collaborator.id} | |
| end | |
| should_respond_with :success | |
| should_render_with_layout | |
| should_render_template :show | |
| should_not_set_the_flash | |
| end | |
| context "on GET to :edit" do | |
| setup do | |
| get :edit, :id => @alert_collaborator.id | |
| end | |
| should_respond_with :success | |
| should_render_with_layout | |
| should_render_template :edit | |
| should_not_set_the_flash | |
| end | |
| context "on PUT to :update (valid data)" do | |
| setup do | |
| @alert_collaborator.expects(:update_attributes).returns(true).once | |
| put :update, :id => @alert_collaborator.id, :alert_collaborator => {} | |
| end | |
| should_assign_to :alert_collaborator, :class => AlertCollaborator | |
| should_respond_with :redirect | |
| should_redirect_to("alert_collaborator index page"){hr_alert_collaborators_path} | |
| end | |
| context "on PUT to :update (invalid data)" do | |
| setup do | |
| @alert_collaborator.expects(:update_attributes).returns(false).once | |
| put :update, :id => @alert_collaborator.id, :alert_collaborator => {} | |
| end | |
| should_assign_to :alert_collaborator, :class => AlertCollaborator | |
| should_respond_with :success | |
| should_render_template :edit | |
| end | |
| context "on DELETE to :destroy" do | |
| setup do | |
| @alert_collaborator.expects(:destroy).returns(true).once | |
| delete :destroy, :id => @alert_collaborator.id | |
| end | |
| should_assign_to(:alert_collaborator){@alert_collaborator} | |
| should_respond_with :redirect | |
| should_redirect_to("alert_collaborator index page"){hr_alert_collaborators_path} | |
| end | |
| end | |
| end |
| class Hr::ArrivalCollaboratorsController < ApplicationController | |
| resource_controller | |
| before_filter :require_user | |
| before_filter :load_data | |
| create.wants.html { redirect_to hr_arrival_collaborators_path } | |
| update.wants.html { redirect_to hr_arrival_collaborators_path } | |
| create.before { | |
| @arrival_collaborator.agency = current_agency | |
| @arrival_collaborator.feedback = current_time | |
| } | |
| def load_data | |
| @arrival_collaborators_agency = ArrivalCollaborator.find(:all, :conditions => {:agency_id => current_agency.id, :feedback_id => current_time.id}) | |
| end | |
| end |
| mickael@mickael-laptop:~/projects/pabd/test$ ruby functional/hr/alert_collaborators_controller_test.rb | |
| Loaded suite functional/hr/alert_collaborators_controller_test | |
| Started | |
| ................................. | |
| Finished in 5.545446 seconds. | |
| 33 tests, 50 assertions, 0 failures, 0 errors |
C'est bien le test du Destroy qui ne fonctionne pas, mais le message d'erreur n'est pas en phase.
(Edit : Le message d'erreur est en phase avec le test controller 25/06/10)
ok entre temps Emilien m'a dit que cela serait configurable dans resource controller dans un bloque destroy de lui dire de ne pas router vers l'instance mais plutôt dans index
HTH ;)
le bloque va dans Hr::ArrivalCollaboratorsController bien entendu :)
Donc en fait, même en mettant le bloc destroy ci-dessous dans le controller Hr::ArrivalCollaborators, il arrive que resource_controller ne le fasse pas au niveau "test controller" ?
destroy.wants.html { redirect_to hr_arrival_collaborators_path }
Je vais essayer de creuser de se côté là, merci à toi et Emilien.
Voilà, je viens de trouver le pourquoi du comment, il "suffisait" de transformer :
(Ligne 90) @alert_collaborator.expects(:destroy).once
en
(Ligne 90) @alert_collaborator.expects(:destroy).returns(true).once
Dans le fichier "alert_collaborators_controller_test.rb"
Une bonne chose de faite.
Je ne vois pas le teste qui ne fonctionne pas dans la source en haut, c'est bien "... DESTROY to DELETE" non?