Sha256: dc28ae5152d3a4b689a4a9a70ec0c72d41a47f5a8a7709ee160a679b3f92cb22

Contents?: true

Size: 1.25 KB

Versions: 7

Compression:

Stored size: 1.25 KB

Contents

module Clearance
  module Testing
    # Provides helpers to your controller specs.
    # These are typically used in tests by requiring `clearance/rspec` or
    # `clearance/test_unit` as appropriate in your `rails_helper.rb` or
    # `test_helper.rb` files.
    module ControllerHelpers
      # @api private
      def setup_controller_request_and_response
        super
        @request.env[:clearance] = Clearance::Session.new(@request.env)
      end

      # Signs in a user that is created using FactoryGirl.
      # The factory name is derrived from your `user_class` Clearance
      # configuration.
      #
      # @raise [RuntimeError] if FactoryGirl is not defined.
      def sign_in
        unless defined?(FactoryGirl)
          raise("Clearance's `sign_in` helper requires factory_girl")
        end

        factory = Clearance.configuration.user_model.to_s.underscore.to_sym
        sign_in_as FactoryGirl.create(factory)
      end

      # Signs in the provided user.
      #
      # @return user
      def sign_in_as(user)
        @request.env[:clearance].sign_in(user)
        user
      end

      # Signs out a user that may be signed in.
      #
      # @return [void]
      def sign_out
        @request.env[:clearance].sign_out
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
clearance-1.16.0 lib/clearance/testing/controller_helpers.rb
clearance-1.15.1 lib/clearance/testing/controller_helpers.rb
clearance-1.15.0 lib/clearance/testing/controller_helpers.rb
clearance-1.14.2 lib/clearance/testing/controller_helpers.rb
clearance-1.14.1 lib/clearance/testing/controller_helpers.rb
clearance-1.14.0 lib/clearance/testing/controller_helpers.rb
clearance-1.13.0 lib/clearance/testing/controller_helpers.rb