Skip to content
Extraits de code Groupes Projets
moderations_controller_test.rb 2,39 ko
Newer Older
  • Learn to ignore specific revisions
  • require 'test_helper'
    
    
    # Event management, moderation means refusal, acceptation or demands for more
    # information
    
    class ModerationsControllerTest < ActionController::TestCase
    
    echarp's avatar
    echarp a validé
      include Devise::TestHelpers
    
      setup do
        @moderation = events :one
    
        sign_in users(:one)
      end
    
    
      test 'should get index' do
        get :index
        assert_response :success
        assert_not_nil assigns(:events)
      end
    
    
      test 'should preview event' do
        patch :preview, id: @moderation, event: {
          title: 'hello world',
          related_region: regions(:region_one)
        }
      end
    
    
    echarp's avatar
    echarp a validé
      test 'should edit event' do
        put :update, id: @moderation, event: {
          title: 'hello world',
          related_region: regions(:region_one)
        }
        assert_redirected_to moderations_path
      end
    
    
      test 'should not edit event' do
        put :update, id: @moderation, event: {
          title: nil
        }
        assert_not_empty assigns(:moderation).errors
      end
    
    
    echarp's avatar
    echarp a validé
      test 'should accept event' do
    
        @moderation = events :proposed
    
        decision = @moderation.decision_time
        assert !@moderation.moderated?
    
        assert_difference 'Event.moderated.count' do
          put :accept, id: @moderation
        end
    
        assert assigns(:moderation).moderated?
    
    echarp's avatar
    echarp a validé
        assert_empty assigns(:moderation).errors
    
    
        assert decision < assigns(:moderation).decision_time
    
    
    echarp's avatar
    echarp a validé
        assert_redirected_to moderations_path
      end
    
    
      test 'should update event' do
        patch :update, id: @moderation, secret: 'MyString', event: {
          title: @moderation.title,
          start_time: @moderation.start_time,
          end_time: @moderation.end_time,
          description: @moderation.description,
          url: @moderation.url,
          contact: @moderation.contact,
    
          tags: @moderation.tags
        }
    
    
        assert_empty assigns(:moderation).errors
        assert_redirected_to moderations_path
      end
    
    
      test 'should not update event' do
        patch :update, id: @moderation, secret: 'MyString', event: {
          title: nil
        }
    
        assert_not_empty assigns(:moderation).errors
      end
    
    
    echarp's avatar
    echarp a validé
      test 'should reject event' do
        assert_difference 'Event.count', -1 do
          delete :destroy, id: @moderation
        end
    
        assert_empty assigns(:moderation).errors
    
        assert_redirected_to moderations_path
      end
    
    
      test 'should reject event with a reason' do
        assert_difference 'Event.count', -1 do
          delete :destroy, id: @moderation, reason: 'r_4'
        end
    
        assert_empty assigns(:moderation).errors
    
        assert_redirected_to moderations_path
      end