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