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