diff --git a/test/test_list_properties.cpp b/test/test_list_properties.cpp
index 472f792105ae1a5add023ef8ad3a2b3409780e64..b60c58fadff358b878108ca72edbb67b1af3f26e 100644
--- a/test/test_list_properties.cpp
+++ b/test/test_list_properties.cpp
@@ -221,4 +221,28 @@ TEST_F(test_list_properties, insert_list_of_bool) {
   EXPECT_FALSE(value.GetAsVector().at(1).GetAsBool());
 }
 
+TEST_F(test_list_properties, insert_list_non_list_datatype) {
+  const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection();
+
+  auto insertion_prop(connection->CreateTransaction());
+
+  Entity abstract_list_property;
+  abstract_list_property.SetRole(Role::PROPERTY);
+  abstract_list_property.SetName("TestProp");
+  abstract_list_property.SetDataType(AtomicDataType::TEXT);
+  abstract_list_property.SetValue(std::vector<std::string>{"item1", "item2", "item3"});
+
+  insertion_prop->InsertEntity(&abstract_list_property);
+  std::cout << "response " << insertion_prop->ResponseToString();
+  insertion_prop->ExecuteAsynchronously();
+  insertion_prop->WaitForIt();
+  EXPECT_TRUE(insertion_prop->GetStatus().IsTerminated());
+  EXPECT_TRUE(insertion_prop->GetStatus().IsError());
+
+  auto query_transaction(connection->CreateTransaction());
+  query_transaction->Query("FIND ENTITY TestProp");
+  query_transaction->Execute();
+  EXPECT_EQ(query_transaction->GetResultSet().size(), 0);
+}
+
 } // namespace caosdb::entity
diff --git a/test/test_select.cpp b/test/test_select.cpp
index 6d8472838f9eb66c7693fcf32835ec57312a311b..d5ec8eb929c653e0fb1f501612cf05433b631463 100644
--- a/test/test_select.cpp
+++ b/test/test_select.cpp
@@ -69,12 +69,12 @@ public:
     }
   }
 
-  static auto CreateTestProp(const std::string &name, AtomicDataType data_type) -> Entity {
+  static auto CreateTestProp(const std::string &name, AtomicDataType data_type, bool isList = false) -> Entity {
     Entity entity;
     entity.SetRole(Role::PROPERTY);
     entity.SetName(name);
     entity.SetDescription("Prop Description " + name);
-    entity.SetDataType(data_type);
+    entity.SetDataType(data_type, isList);
     return entity;
   }
 
@@ -86,12 +86,12 @@ public:
     return entity;
   }
 
-  static auto CreateTestProp(const std::string &name, const std::string &data_type) -> Entity {
+  static auto CreateTestProp(const std::string &name, const std::string &data_type, bool isList = false) -> Entity {
     Entity entity;
     entity.SetRole(Role::PROPERTY);
     entity.SetName(name);
     entity.SetDescription("Prop Description " + name);
-    entity.SetDataType(data_type);
+    entity.SetDataType(data_type, isList);
     return entity;
   }
 
@@ -120,13 +120,17 @@ protected:
   void SetUp() override {
     DeleteEntities();
 
+    // Test Entities
     const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection();
     auto insert_transaction(connection->CreateTransaction());
+    // 1. Two RecordTypes
     auto rt = CreateTestRT();
     auto rt2 = CreateTestRT();
     rt2.SetName("TestRT2");
     insert_transaction->InsertEntity(&rt);
     insert_transaction->InsertEntity(&rt2);
+
+    // 2. Six Scalar Properties
     auto p = CreateTestProp("TestProp", AtomicDataType::TEXT);
     insert_transaction->InsertEntity(&p);
     p = CreateTestProp("TestProp2", AtomicDataType::TEXT);
@@ -142,7 +146,11 @@ protected:
     p = CreateTestProp("TestPropBool", AtomicDataType::BOOLEAN);
     insert_transaction->InsertEntity(&p);
 
+    // 3. A List Property
+    p = CreateTestProp("TestListTextProp", AtomicDataType::TEXT, true);
+    insert_transaction->InsertEntity(&p);
 
+    // 4. A Record which can be references by others
     auto reference_entity = test_select::CreateRecord("TestProp3", Value("val3"));
     Property property;
     property.SetName("TestPropDouble");
@@ -155,6 +163,7 @@ protected:
     parent.SetName("TestRT2");
     reference_entity.AppendParent(parent);
     insert_transaction->InsertEntity(&reference_entity);
+
     insert_transaction->Execute();
   }
 
@@ -506,5 +515,35 @@ TEST_F(test_select, test_select_reference_entitys_propertys_id) {
   }
 }
 
+/*
+ * Test select a list.
+ */
+TEST_F(test_select, test_select_list) {
+  const auto &connection = caosdb::connection::ConnectionManager::GetDefaultConnection();
+
+  auto entity = test_select::CreateRecord("TestRT2", Value());
+  Property listp;
+  listp.SetName("TestListTextProp");
+  listp.SetValue(std::vector<std::string>{"item1", "item2", "item3"});
+  entity.AppendProperty(listp);
+  test_select::InsertEntity(&entity);
+
+  auto query_transaction(connection->CreateTransaction());
+  query_transaction->Query("SELECT TestListTextProp FROM Record TestRT");
+  query_transaction->Execute();
+  EXPECT_EQ(query_transaction->GetResultTable().GetHeader().size(), 1);
+  for (const auto &column : query_transaction->GetResultTable().GetHeader()) {
+    EXPECT_EQ(column.GetName(), "TestListTextProp");
+  }
+
+  EXPECT_EQ(query_transaction->GetResultTable().size(), 1);
+  for (const auto &row : query_transaction->GetResultTable().GetRows()) {
+    EXPECT_EQ(row.GetValue("TestListTextProp").GetAsVector().at(0).GetAsString(), "item1");
+    EXPECT_EQ(row.GetValue("TestListTextProp").GetAsVector().at(1).GetAsString(), "item2");
+    EXPECT_EQ(row.GetValue("TestListTextProp").GetAsVector().at(2).GetAsString(), "item3");
+  }
+}
+
+
 
 } // namespace caosdb::transaction