Skip to content

Commit bd27fae

Browse files
committed
fix TestGenericsPreloads in tests/generics_test
1 parent 33796e6 commit bd27fae

File tree

2 files changed

+42
-19
lines changed

2 files changed

+42
-19
lines changed

tests/generics_test.go

Lines changed: 40 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -67,25 +67,25 @@ func TestGenericsCreate(t *testing.T) {
6767
t.Fatalf("no primary key found for %v", user)
6868
}
6969

70-
if u, err := gorm.G[User](DB).Where(`"name" = ?`, user.Name).First(ctx); err != nil {
70+
if u, err := gorm.G[User](DB).Where("\"name\" = ?", user.Name).First(ctx); err != nil {
7171
t.Fatalf("failed to find user, got error: %v", err)
7272
} else if u.Name != user.Name || u.ID != user.ID {
7373
t.Errorf("found invalid user, got %v, expect %v", u, user)
7474
}
7575

76-
if u, err := gorm.G[User](DB).Where(`"name" = ?`, user.Name).Take(ctx); err != nil {
76+
if u, err := gorm.G[User](DB).Where("\"name\" = ?", user.Name).Take(ctx); err != nil {
7777
t.Fatalf("failed to find user, got error: %v", err)
7878
} else if u.Name != user.Name || u.ID != user.ID {
7979
t.Errorf("found invalid user, got %v, expect %v", u, user)
8080
}
8181

82-
if u, err := gorm.G[User](DB).Select("name").Where(`"name" = ?`, user.Name).First(ctx); err != nil {
82+
if u, err := gorm.G[User](DB).Select("name").Where("\"name\" = ?", user.Name).First(ctx); err != nil {
8383
t.Fatalf("failed to find user, got error: %v", err)
8484
} else if u.Name != user.Name || u.Age != 0 {
8585
t.Errorf("found invalid user, got %v, expect %v", u, user)
8686
}
8787

88-
if u, err := gorm.G[User](DB).Omit("name").Where(`"name" = ?`, user.Name).First(ctx); err != nil {
88+
if u, err := gorm.G[User](DB).Omit("name").Where("\"name\" = ?", user.Name).First(ctx); err != nil {
8989
t.Fatalf("failed to find user, got error: %v", err)
9090
} else if u.Name != "" || u.Age != user.Age {
9191
t.Errorf("found invalid user, got %v, expect %v", u, user)
@@ -95,13 +95,13 @@ func TestGenericsCreate(t *testing.T) {
9595
ID int
9696
Name string
9797
}{}
98-
if err := gorm.G[User](DB).Where(`"name" = ?`, user.Name).Scan(ctx, &result); err != nil {
98+
if err := gorm.G[User](DB).Where("\"name\" = ?", user.Name).Scan(ctx, &result); err != nil {
9999
t.Fatalf("failed to scan user, got error: %v", err)
100100
} else if result.Name != user.Name || uint(result.ID) != user.ID {
101101
t.Errorf("found invalid user, got %v, expect %v", result, user)
102102
}
103103

104-
mapResult, err := gorm.G[map[string]interface{}](DB).Table("users").Where(`"name" = ?`, user.Name).MapColumns(map[string]string{"name": "user_name"}).Take(ctx)
104+
mapResult, err := gorm.G[map[string]interface{}](DB).Table("users").Where("\"name\" = ?", user.Name).MapColumns(map[string]string{"name": "user_name"}).Take(ctx)
105105
if v := mapResult["user_name"]; fmt.Sprint(v) != user.Name {
106106
t.Errorf("failed to find map results, got %v, err %v", mapResult, err)
107107
}
@@ -497,7 +497,6 @@ func TestGenericsNestedJoins(t *testing.T) {
497497
}
498498

499499
func TestGenericsPreloads(t *testing.T) {
500-
t.Skip()
501500
ctx := context.Background()
502501
db := gorm.G[User](DB)
503502

@@ -508,7 +507,7 @@ func TestGenericsPreloads(t *testing.T) {
508507

509508
db.CreateInBatches(ctx, &[]User{u3, u, u2}, 10)
510509

511-
result, err := db.Preload("Company", nil).Preload("Pets", nil).Where("name = ?", u.Name).First(ctx)
510+
result, err := db.Preload("Company", nil).Preload("Pets", nil).Where("\"name\" = ?", u.Name).First(ctx)
512511
if err != nil {
513512
t.Fatalf("Preload failed: %v", err)
514513
}
@@ -518,9 +517,9 @@ func TestGenericsPreloads(t *testing.T) {
518517
}
519518

520519
results, err := db.Preload("Company", func(db gorm.PreloadBuilder) error {
521-
db.Where("name = ?", u.Company.Name)
520+
db.Where("\"name\" = ?", u.Company.Name)
522521
return nil
523-
}).Where("name in ?", names).Find(ctx)
522+
}).Where("\"name\" in ?", names).Find(ctx)
524523
if err != nil {
525524
t.Fatalf("Preload failed: %v", err)
526525
}
@@ -536,15 +535,23 @@ func TestGenericsPreloads(t *testing.T) {
536535

537536
_, err = db.Preload("Company", func(db gorm.PreloadBuilder) error {
538537
return errors.New("preload error")
539-
}).Where("name in ?", names).Find(ctx)
538+
}).Where("\"name\" in ?", names).Find(ctx)
540539
if err == nil {
541540
t.Fatalf("Preload should failed, but got nil")
542541
}
543542

544543
results, err = db.Preload("Pets", func(db gorm.PreloadBuilder) error {
544+
db.Select(
545+
"pets.id",
546+
"pets.created_at",
547+
"pets.updated_at",
548+
"pets.deleted_at",
549+
"pets.user_id",
550+
"pets.name",
551+
)
545552
db.LimitPerRecord(5)
546553
return nil
547-
}).Where("name in ?", names).Find(ctx)
554+
}).Where("\"name\" in ?", names).Find(ctx)
548555

549556
for _, result := range results {
550557
if result.Name == u.Name {
@@ -557,9 +564,17 @@ func TestGenericsPreloads(t *testing.T) {
557564
}
558565

559566
results, err = db.Preload("Pets", func(db gorm.PreloadBuilder) error {
560-
db.Order("name desc").LimitPerRecord(5)
567+
db.Select(
568+
"pets.id",
569+
"pets.created_at",
570+
"pets.updated_at",
571+
"pets.deleted_at",
572+
"pets.user_id",
573+
"pets.name",
574+
)
575+
db.Order("\"name\" desc").LimitPerRecord(5)
561576
return nil
562-
}).Where("name in ?", names).Find(ctx)
577+
}).Where("\"name\" in ?", names).Find(ctx)
563578

564579
for _, result := range results {
565580
if result.Name == u.Name {
@@ -577,12 +592,20 @@ func TestGenericsPreloads(t *testing.T) {
577592
}
578593

579594
results, err = db.Preload("Pets", func(db gorm.PreloadBuilder) error {
580-
db.Order("name").LimitPerRecord(5)
595+
db.Select(
596+
"pets.id",
597+
"pets.created_at",
598+
"pets.updated_at",
599+
"pets.deleted_at",
600+
"pets.user_id",
601+
"pets.name",
602+
)
603+
db.Order("\"name\"").LimitPerRecord(5)
581604
return nil
582605
}).Preload("Friends", func(db gorm.PreloadBuilder) error {
583-
db.Order("name")
606+
db.Order("\"name\"")
584607
return nil
585-
}).Where("name in ?", names).Find(ctx)
608+
}).Where("\"name\" in ?", names).Find(ctx)
586609

587610
for _, result := range results {
588611
if result.Name == u.Name {

tests/passed-tests.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ TestEmbeddedTagSetting
104104
TestDialectorWithErrorTranslatorSupport
105105
TestSupportedDialectorWithErrDuplicatedKey
106106
TestSupportedDialectorWithErrForeignKeyViolated
107-
#TestGenericsCreate
107+
TestGenericsCreate
108108
TestGenericsCreateInBatches
109109
#TestGenericsExecAndUpdate
110110
TestGenericsRow
@@ -113,7 +113,7 @@ TestGenericsFindInBatches
113113
TestGenericsScopes
114114
#TestGenericsJoins
115115
TestGenericsNestedJoins
116-
#TestGenericsPreloads
116+
TestGenericsPreloads
117117
#TestGenericsNestedPreloads
118118
TestGenericsDistinct
119119
TestGenericsGroupHaving

0 commit comments

Comments
 (0)