Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
field_values_test.clj 2.24 KiB
(ns metabase.models.field-values-test
  (:require [expectations :refer :all]
            [metabase.db :as db]
            [metabase.models.database :refer [Database]]
            [metabase.models.field :refer [Field]]
            [metabase.models.field-values :refer :all]
            [metabase.models.table :refer [Table]]
            [metabase.test.util :as tu]))

;; ## TESTS FOR FIELD-SHOULD-HAVE-FIELD-VALUES?

(expect true
  (field-should-have-field-values? {:special_type :category
                                    :visibility_type :normal
                                    :base_type :TextField}))

(expect false
  (field-should-have-field-values? {:special_type :category
                                    :visibility_type :sensitive
                                    :base_type :TextField}))
(expect false
  (field-should-have-field-values? {:special_type :category
                                    :visibility_type :hidden
                                    :base_type :TextField}))
(expect false
  (field-should-have-field-values? {:special_type :category
                                    :visibility_type :details-only
                                    :base_type :TextField}))

(expect false
  (field-should-have-field-values? {:special_type nil
                                    :visibility_type :normal
                                    :base_type :TextField}))

(expect true
  (field-should-have-field-values? {:special_type "country"
                                    :visibility_type :normal
                                    :base_type :TextField}))

(expect true
  (field-should-have-field-values? {:special_type nil
                                    :visibility_type :normal
                                    :base_type "BooleanField"}))


(expect
  [[1,2,3]
   {:status 204, :body nil}
   nil]
  (tu/with-temp* [Database    [{database-id :id}]
                  Table       [{table-id :id} {:db_id database-id}]
                  Field       [{field-id :id} {:table_id table-id}]
                  FieldValues [_              {:field_id field-id, :values "[1,2,3]"}]]
    [(db/sel :one :field [FieldValues :values] :field_id field-id)
     (clear-field-values field-id)
     (db/sel :one :field [FieldValues :values] :field_id field-id)]))