From 328011d59485c98562faadbcf04041748514812c Mon Sep 17 00:00:00 2001 From: Daniel Higginbotham <daniel@flyingmachinestudios.com> Date: Thu, 19 Dec 2019 16:10:11 -0500 Subject: [PATCH] config now ignores empty-string env vars (#11549) config now ignores empty-string env vars --- src/metabase/config.clj | 6 ++++-- test/metabase/config_test.clj | 17 +++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 test/metabase/config_test.clj diff --git a/src/metabase/config.clj b/src/metabase/config.clj index 09f33eff7e9..459d49a3650 100644 --- a/src/metabase/config.clj +++ b/src/metabase/config.clj @@ -41,8 +41,10 @@ 2. jvm options (ex: -Dmb.db.type -> :mb-db-type) 3. hard coded `app-defaults`" [k] - (let [k (keyword k)] - (or (k environ/env) (k app-defaults)))) + (let [k (keyword k) + env-val (k environ/env)] + (or (when-not (str/blank? env-val) env-val) + (k app-defaults)))) ;; These are convenience functions for accessing config values that ensures a specific return type diff --git a/test/metabase/config_test.clj b/test/metabase/config_test.clj new file mode 100644 index 00000000000..b36562ae62e --- /dev/null +++ b/test/metabase/config_test.clj @@ -0,0 +1,17 @@ +(ns metabase.config-test + (:require [clojure.test :refer :all] + [environ.core :as environ] + [metabase.config :as config])) + +(deftest config-parsing + (testing "takes value of non-empty env var" + (with-redefs [environ/env (assoc environ/env :max-session-age "123")] + (is (= "123" + (config/config-str :max-session-age))))) + (testing "falls back to default if env var is nil or an empty string" + (with-redefs [environ/env (assoc environ/env :max-session-age "")] + (is (= "20160" + (config/config-str :max-session-age)))) + (with-redefs [environ/env (assoc environ/env :max-session-age nil)] + (is (= "20160" + (config/config-str :max-session-age)))))) -- GitLab