require "test_helper" describe "RedisKit.load_config" do after do ENV["REDIS_URL"] = nil end it "loads config from an environment variable" do ENV["REDIS_URL"] = "redis://cool.dude:12345" config = RedisKit.load_config( good_config_path, "test" ) if jruby? config.must_equal url: "redis://cool.dude:12345" else config.must_equal driver: :hiredis, url: "redis://cool.dude:12345" end end it "loads config from a config file" do config = RedisKit.load_config( good_config_path, "test" ) if jruby? config.must_equal url: "redis://good:1234", mock: false else config.must_equal driver: :hiredis, url: "redis://good:1234", mock: false end end it "supports ERB in the config file" do config = RedisKit.load_config( good_config_path, "test_erb" ) if jruby? config.must_equal url: "redis://good:1234" else config.must_equal driver: :hiredis, url: "redis://good:1234" end end it "returns an error if the config file doesn't have a config for the environment" do catch_error do RedisKit.load_config( good_config_path, "whoops" ) end.must_be_kind_of RedisKit::MissingConfigError end it "returns an error if the config file doesn't exist" do catch_error do RedisKit.load_config( missing_config_path, "test" ) end.must_be_kind_of RedisKit::MissingConfigError end it "returns an error if the config file is blank" do catch_error do RedisKit.load_config( blank_config_path, "test" ) end.must_be_kind_of RedisKit::MissingConfigError end it "returns an error if the config file is invalid" do catch_error do RedisKit.load_config( invalid_config_path, "test" ) end.must_be_kind_of RedisKit::InvalidConfigSyntaxError end end describe "RedisKit.new_redis" do it "builds a regular redis connection" do redis = RedisKit.new_redis( good_config_path, "test" ) redis.must_be_kind_of Redis end it "builds a mock redis connection" do redis = RedisKit.new_redis( good_config_path, "test_mock" ) redis.must_be_kind_of MockRedis end end describe "RedisKit.redis" do it "stores a global Redis connection" do redis = RedisKit.new_redis( good_config_path, "test" ) RedisKit.redis.must_be_nil RedisKit.redis = redis RedisKit.redis.must_equal redis end end