module Lita::RSpec

Extras for RSpec that facilitate the testing of Lita code.

Public Class Methods

included(base) click to toggle source

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]

# File lib/lita/rspec.rb, line 25
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