From 58a0743cff20301cd8343e1ede96fa9e27ca2aaf Mon Sep 17 00:00:00 2001
From: Cam Saul <cammsaul@gmail.com>
Date: Wed, 3 Apr 2019 16:51:18 -0700
Subject: [PATCH] Tests for #9090/#9679 :100:

---
 .../middleware/parameters/dates_test.clj      | 61 +++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100644 test/metabase/query_processor/middleware/parameters/dates_test.clj

diff --git a/test/metabase/query_processor/middleware/parameters/dates_test.clj b/test/metabase/query_processor/middleware/parameters/dates_test.clj
new file mode 100644
index 00000000000..7382c244721
--- /dev/null
+++ b/test/metabase/query_processor/middleware/parameters/dates_test.clj
@@ -0,0 +1,61 @@
+(ns metabase.query-processor.middleware.parameters.dates-test
+  (:require [expectations :refer [expect]]
+            [metabase.query-processor.middleware.parameters.dates :as dates]))
+
+;; year and month
+(expect
+  {:end "2019-04-30", :start "2019-04-01"}
+  (dates/date-string->range "2019-04" "UTC"))
+
+(expect
+  [:between
+   [:datetime-field [:field-literal "field" :type/DateTime] :day]
+   "2019-04-01"
+   "2019-04-30"]
+  (dates/date-string->filter "2019-04" [:field-literal "field" :type/DateTime]))
+
+;; quarter year
+(expect
+  {:start "2019-04-01", :end "2019-06-30"}
+  (dates/date-string->range "Q2-2019" "UTC"))
+
+(expect
+ [:between
+  [:datetime-field [:field-literal "field" :type/DateTime] :day]
+  "2019-04-01"
+  "2019-06-30"]
+ (dates/date-string->filter "Q2-2019" [:field-literal "field" :type/DateTime]))
+
+;; single day
+(expect
+  {:start "2019-04-01", :end "2019-04-01"}
+  (dates/date-string->range "2019-04-01" "UTC"))
+
+(expect
+  [:=
+   [:datetime-field [:field-literal "field" :type/DateTime] :day]
+   "2019-04-01"]
+  (dates/date-string->filter "2019-04-01" [:field-literal "field" :type/DateTime]))
+
+;; day range
+(expect
+  {:start "2019-04-01", :end "2019-04-03"}
+  (dates/date-string->range "2019-04-01~2019-04-03" "UTC"))
+
+(expect
+  [:between
+   [:datetime-field [:field-literal "field" :type/DateTime] :day]
+   "2019-04-01"
+   "2019-04-03"]
+  (dates/date-string->filter "2019-04-01~2019-04-03" [:field-literal "field" :type/DateTime]))
+
+;; after day
+(expect
+ {:start "2019-04-01"}
+ (dates/date-string->range "2019-04-01~" "UTC"))
+
+(expect
+  [:>
+   [:datetime-field [:field-literal "field" :type/DateTime] :day]
+   "2019-04-01"]
+  (dates/date-string->filter "2019-04-01~" [:field-literal "field" :type/DateTime]))
-- 
GitLab