diff --git a/test/metabase/driver_test.clj b/test/metabase/driver_test.clj index c63925e7281cee4d332fceb7d6662008f8b4cddd..10c9774d482b8cadcdd2eaa8fe79fe041239d2e7 100644 --- a/test/metabase/driver_test.clj +++ b/test/metabase/driver_test.clj @@ -36,3 +36,22 @@ (expect :type/* (driver/values->base-type [(Object.)])) + +;; Should work with initial nils even if sequence is lazy +(expect + [:type/Integer true] + (let [realized-lazy-seq? (atom false)] + [(driver/values->base-type (lazy-cat [nil nil nil] + (do (reset! realized-lazy-seq? true) + [4 5 6]))) + @realized-lazy-seq?])) + +;; but it should respect laziness and not keep scanning after it finds 100 values +(expect + [:type/Integer false] + (let [realized-lazy-seq? (atom false)] + [(driver/values->base-type (lazy-cat [1 2 3] + (repeat 1000 nil) + (do (reset! realized-lazy-seq? true) + [4 5 6]))) + @realized-lazy-seq?])) diff --git a/test/metabase/query_processor/middleware/annotate_and_sort_test.clj b/test/metabase/query_processor/middleware/annotate_and_sort_test.clj index a770dd0a0d106b2fbb83b0fbe6c3275c10073534..0cb02e30d2211c028bcae1a8ee90dc1c7da0089d 100644 --- a/test/metabase/query_processor/middleware/annotate_and_sort_test.clj +++ b/test/metabase/query_processor/middleware/annotate_and_sort_test.clj @@ -3,36 +3,7 @@ [metabase.test.util :as tu])) (tu/resolve-private-vars metabase.query-processor.middleware.annotate-and-sort - vals->base-type infer-column-types) - -;; tests for vals->base-type -(expect - :type/Integer - (vals->base-type [1 "A" "B"])) - -;; should work with some initial nils -(expect - :type/Text - (vals->base-type [nil nil "A"])) - -;; (even if sequence is lazy) -(expect - [:type/Integer true] - (let [realized-lazy-seq? (atom false)] - [(vals->base-type (lazy-cat [nil nil nil] - (do (reset! realized-lazy-seq? true) - [4 5 6]))) - @realized-lazy-seq?])) - -;; but it should respect laziness and not keep scanning after it finds the first non-`nil` value -(expect - [:type/Integer false] - (let [realized-lazy-seq? (atom false)] - [(vals->base-type (lazy-cat [1 2 3] - (do (reset! realized-lazy-seq? true) - [4 5 6]))) - @realized-lazy-seq?])) - + infer-column-types) ;; make sure that `infer-column-types` can still infer types even if the initial value(s) are `nil` (#4256) (expect