diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index e136f41c266a7d77b96858d9dff0df5b97533599..c6caa79ebf0e1eee7fd8e00d238fa78732030892 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -28,8 +28,10 @@
 #include "gtest/gtest-test-part.h"     // for TestPartResult, SuiteApiResolver
 #include "gtest/gtest_pred_impl.h"     // for Test, EXPECT_EQ, AssertionResult
 #include <memory>                      // for unique_ptr, allocator, __shar...
+#include <string>                      // for string
 
 namespace caosdb::transaction {
+using caosdb::entity::Entity;
 using caosdb::entity::MessageCode;
 
 TEST(test_transaction, DISABLED_retrieve_manufacturer_by_id) {
@@ -84,4 +86,30 @@ TEST(test_transaction, retrieve_non_existing) {
             MessageCode::ENTITY_DOES_NOT_EXIST);
 }
 
+TEST(test_transaction, insert_delete) {
+  const auto &connection =
+    caosdb::connection::ConnectionManager::GetDefaultConnection();
+
+  auto transaction(connection->CreateTransaction());
+
+  Entity entity;
+  entity.SetRole("RecordType");
+  entity.SetName("RT1");
+  transaction->InsertEntity(&entity);
+  transaction->ExecuteAsynchronously();
+
+  auto status = transaction->WaitForIt();
+
+  ASSERT_TRUE(status.IsTerminated());
+  ASSERT_FALSE(status.IsError());
+
+  const auto &result_set =
+    dynamic_cast<const caosdb::transaction::UniqueResult &>(
+      transaction->GetResultSet());
+
+  const auto &new_entity = result_set.GetEntity();
+  EXPECT_FALSE(new_entity.GetId().empty());
+  EXPECT_FALSE(new_entity.HasErrors());
+}
+
 } // namespace caosdb::transaction