From 05fe2c824b60ad9d0e59a86ced402b330d954a50 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cam=20Sa=C3=BCl?= <cammsaul@gmail.com>
Date: Fri, 14 Oct 2016 12:33:54 -0700
Subject: [PATCH] Fix getting started guide endpoint if no metrics are defined
 :wrench:

---
 src/metabase/api/getting_started.clj             | 5 +++--
 test/metabase/api/getting_started_guide_test.clj | 8 ++++++++
 test/metabase/test/data/users.clj                | 1 +
 3 files changed, 12 insertions(+), 2 deletions(-)
 create mode 100644 test/metabase/api/getting_started_guide_test.clj

diff --git a/src/metabase/api/getting_started.clj b/src/metabase/api/getting_started.clj
index 7600a1f2af1..444a25dac61 100644
--- a/src/metabase/api/getting_started.clj
+++ b/src/metabase/api/getting_started.clj
@@ -33,7 +33,8 @@
      :important_segments       segment-ids
      ;; A map of metric_id -> sequence of important field_ids
      :metric_important_fields  (m/map-vals (partial map :field_id)
-                                           (group-by :metric_id (db/select ['MetricImportantField :field_id :metric_id]
-                                                                 :metric_id [:in metric-ids])))}))
+                                           (group-by :metric_id (when (seq metric-ids)
+                                                                  (db/select ['MetricImportantField :field_id :metric_id]
+                                                                    :metric_id [:in metric-ids]))))}))
 
 (define-routes)
diff --git a/test/metabase/api/getting_started_guide_test.clj b/test/metabase/api/getting_started_guide_test.clj
new file mode 100644
index 00000000000..6cca9720f8e
--- /dev/null
+++ b/test/metabase/api/getting_started_guide_test.clj
@@ -0,0 +1,8 @@
+(ns metabase.api.getting-started-guide-test
+  (:require [expectations :refer :all]
+            [metabase.test.data.users :refer [user->client]]))
+
+;; just make sure the getting started guide endpoint works and returns the correct keys
+(expect
+  #{:metric_important_fields :most_important_dashboard :things_to_know :important_metrics :important_segments :important_tables :contact}
+  (set (keys ((user->client :rasta) :get 200 "getting_started"))))
diff --git a/test/metabase/test/data/users.clj b/test/metabase/test/data/users.clj
index 1e37a7190ed..aa07dbe486f 100644
--- a/test/metabase/test/data/users.clj
+++ b/test/metabase/test/data/users.clj
@@ -1,5 +1,6 @@
 (ns metabase.test.data.users
   "Code related to creating / managing fake `Users` for testing purposes."
+  ;; TODO - maybe this namespace should just be `metabase.test.users`.
   (:require [medley.core :as m]
             (metabase [db :as db]
                       [http-client :as http])
-- 
GitLab