Sha256: cb3a2e4db0fb5e1f8959ec479d52f2c7b6d1542c5f6a4002ee7d8fed21a9ae69

Contents?: true

Size: 1.85 KB

Versions: 24

Compression:

Stored size: 1.85 KB

Contents

begin
  require "rspec"
  require "rspec/expectations"
  require "rspec/mocks"
rescue LoadError
  abort I18n.t("lita.rspec.full_suite_required")
end

major, *_unused = RSpec::Core::Version::STRING.split(/\./)
abort I18n.t("lita.rspec.version_3_required") if major.to_i < 3

require_relative "../lita"
require_relative "rspec/handler"

module Lita
  # Extras for +RSpec+ that facilitate the testing of Lita code.
  module RSpec
    class << self
      # Causes all interaction with Redis to use a test-specific namespace.
      # Clears Redis before each example. Stubs the logger to prevent log
      # messages from cluttering test output. Clears Lita's global
      # configuration.
      # @param base [Object] The class including the module.
      # @return [void]
      def included(base)
        base.class_eval do
          let(:registry) do
            if Lita.version_3_compatibility_mode?
              Lita
            else
              Registry.new
            end
          end

          before do
            logger = double("Logger").as_null_object
            allow(Lita).to receive(:logger).and_return(logger)
            stub_const("Lita::REDIS_NAMESPACE", "lita.test")
            keys = Lita.redis.keys("*")
            Lita.redis.del(keys) unless keys.empty?
            registry.clear_config if Lita.version_3_compatibility_mode?
          end
        end
      end
    end
  end
end

Lita.test_mode = true
Lita.version_3_compatibility_mode = true

RSpec.configure do |config|
  config.include Lita::RSpec, lita: true
  config.include Lita::RSpec::Handler, lita_handler: true

  config.before(:suite) do
    if Lita.version_3_compatibility_mode?
      if RSpec.configuration.color_enabled?
        warn "\e[31m" + I18n.t("lita.rspec.lita_3_compatibility_mode") + "\e[0m"
      else
        warn I18n.t("lita.rspec.lita_3_compatibility_mode")
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
lita-4.8.0 lib/lita/rspec.rb
lita-4.8.0.beta1 lib/lita/rspec.rb
lita-4.7.1 lib/lita/rspec.rb
lita-4.7.0 lib/lita/rspec.rb
lita-4.6.1 lib/lita/rspec.rb
lita-4.6.0 lib/lita/rspec.rb
lita-4.5.0 lib/lita/rspec.rb
lita-4.4.3 lib/lita/rspec.rb
lita-4.4.2 lib/lita/rspec.rb
lita-4.4.1 lib/lita/rspec.rb
lita-4.4.0 lib/lita/rspec.rb
lita-4.3.2 lib/lita/rspec.rb
lita-4.3.1 lib/lita/rspec.rb
lita-4.3.0 lib/lita/rspec.rb
lita-4.2.1 lib/lita/rspec.rb
lita-4.2.0 lib/lita/rspec.rb
lita-4.1.0 lib/lita/rspec.rb
lita-4.0.4 lib/lita/rspec.rb
lita-4.0.3 lib/lita/rspec.rb
lita-4.0.2 lib/lita/rspec.rb