From 7f6a8220dc3c5b6c114fb16663dc67952c5ab092 Mon Sep 17 00:00:00 2001
From: Emmad Usmani <emmadusmani@berkeley.edu>
Date: Wed, 22 Feb 2023 13:15:15 -0800
Subject: [PATCH] Fix order of type checking in `getFieldType` (#28543)

---
 frontend/src/metabase-lib/types/utils/isa.js           | 2 +-
 frontend/src/metabase-lib/types/utils/isa.unit.spec.js | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/frontend/src/metabase-lib/types/utils/isa.js b/frontend/src/metabase-lib/types/utils/isa.js
index 9d2516a84fb..a8deade2964 100644
--- a/frontend/src/metabase-lib/types/utils/isa.js
+++ b/frontend/src/metabase-lib/types/utils/isa.js
@@ -90,10 +90,10 @@ export function getFieldType(field) {
     COORDINATE,
     FOREIGN_KEY,
     PRIMARY_KEY,
+    BOOLEAN,
     STRING,
     STRING_LIKE,
     NUMBER,
-    BOOLEAN,
   ]) {
     if (isFieldType(type, field)) {
       return type;
diff --git a/frontend/src/metabase-lib/types/utils/isa.unit.spec.js b/frontend/src/metabase-lib/types/utils/isa.unit.spec.js
index d9077d891fd..bb126c06661 100644
--- a/frontend/src/metabase-lib/types/utils/isa.unit.spec.js
+++ b/frontend/src/metabase-lib/types/utils/isa.unit.spec.js
@@ -94,6 +94,15 @@ describe("isa", () => {
       ).toEqual(STRING);
     });
 
+    it("should know a bool regardless of semantic_type", () => {
+      expect(
+        getFieldType({
+          base_type: TYPE.Boolean,
+          semantic_type: TYPE.Category,
+        }),
+      ).toEqual(BOOLEAN);
+    });
+
     it("should know what it doesn't know", () => {
       expect(getFieldType({ base_type: "DERP DERP DERP" })).toEqual(undefined);
     });
-- 
GitLab