From 47ae801b4c327213e44bd17323c9fc140278ed76 Mon Sep 17 00:00:00 2001 From: KEHyeon Date: Sat, 15 Feb 2025 16:52:03 +0900 Subject: [PATCH] add tet TestCreateWithInterfaceArrayType --- tests/create_test.go | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/tests/create_test.go b/tests/create_test.go index c50ba78d..72806068 100644 --- a/tests/create_test.go +++ b/tests/create_test.go @@ -796,7 +796,7 @@ func TestCreateWithInterfaceType(t *testing.T) { user := *GetUser("create", Config{}) type UserInterface interface{} var userInterface UserInterface = &user - + if results := DB.Create(userInterface); results.Error != nil { t.Fatalf("errors happened when create: %v", results.Error) } else if results.RowsAffected != 1 { @@ -822,3 +822,34 @@ func TestCreateWithInterfaceType(t *testing.T) { CheckUser(t, newUser, user) } } + +func TestCreateWithInterfaceArrayType(t *testing.T) { + user := *GetUser("create", Config{}) + type UserInterface interface{} + var userInterface UserInterface = &user + + if results := DB.Create([]UserInterface{userInterface}); results.Error != nil { + t.Fatalf("errors happened when create: %v", results.Error) + } else if results.RowsAffected != 1 { + t.Fatalf("rows affected expects: %v, got %v", 1, results.RowsAffected) + } + + if user.ID == 0 { + t.Errorf("user's primary key should has value after create, got : %v", user.ID) + } + + if user.CreatedAt.IsZero() { + t.Errorf("user's created at should be not zero") + } + + if user.UpdatedAt.IsZero() { + t.Errorf("user's updated at should be not zero") + } + + var newUser User + if err := DB.Where("id = ?", user.ID).First(&newUser).Error; err != nil { + t.Fatalf("errors happened when query: %v", err) + } else { + CheckUser(t, newUser, user) + } +}