(t *testing.T)
| 14 | } |
| 15 | |
| 16 | func TestWithResultIncludesError(t *testing.T) { |
| 17 | db, err := gorm.Open(sqlite.Open("file::memory:?cache=shared"), &gorm.Config{}) |
| 18 | if err != nil { |
| 19 | t.Fatalf("open db failed: %v", err) |
| 20 | } |
| 21 | if err := db.AutoMigrate(&withResultUser{}); err != nil { |
| 22 | t.Fatalf("migrate failed: %v", err) |
| 23 | } |
| 24 | |
| 25 | ctx := context.Background() |
| 26 | |
| 27 | u := withResultUser{Name: "with-result-ok"} |
| 28 | r := gorm.WithResult() |
| 29 | if err := gorm.G[withResultUser](db, r).Create(ctx, &u); err != nil { |
| 30 | t.Fatalf("create failed: %v", err) |
| 31 | } |
| 32 | if u.ID == 0 { |
| 33 | t.Fatalf("expected ID to be set") |
| 34 | } |
| 35 | if r.Error != nil { |
| 36 | t.Fatalf("unexpected result error: %v", r.Error) |
| 37 | } |
| 38 | if r.RowsAffected <= 0 { |
| 39 | t.Fatalf("expected RowsAffected > 0, got %d", r.RowsAffected) |
| 40 | } |
| 41 | |
| 42 | u2 := withResultUser{Name: "with-result-fail"} |
| 43 | r2 := gorm.WithResult() |
| 44 | if err := gorm.G[withResultUser](db, r2).Table("does_not_exist").Create(ctx, &u2); err == nil { |
| 45 | t.Fatalf("expected error for missing table, got nil") |
| 46 | } |
| 47 | if r2.Error == nil { |
| 48 | t.Fatalf("expected result error to be set for missing table") |
| 49 | } |
| 50 | } |
| 51 |
nothing calls this directly
no test coverage detected