Test Select, Omit with Create
This commit is contained in:
		
							parent
							
								
									1546f8a4a1
								
							
						
					
					
						commit
						9d3e929790
					
				| @ -31,7 +31,7 @@ func SelectAndOmitColumns(stmt *gorm.Statement, requireCreate, requireUpdate boo | |||||||
| 
 | 
 | ||||||
| 	// omit columns
 | 	// omit columns
 | ||||||
| 	for _, omit := range stmt.Omits { | 	for _, omit := range stmt.Omits { | ||||||
| 		if field := stmt.Schema.LookUpField(omit); field != nil { | 		if field := stmt.Schema.LookUpField(omit); field != nil && field.DBName != "" { | ||||||
| 			results[field.DBName] = false | 			results[field.DBName] = false | ||||||
| 		} else { | 		} else { | ||||||
| 			results[omit] = false | 			results[omit] = false | ||||||
|  | |||||||
| @ -1,7 +1,6 @@ | |||||||
| package tests_test | package tests_test | ||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"fmt" |  | ||||||
| 	"testing" | 	"testing" | ||||||
| 	"time" | 	"time" | ||||||
| 
 | 
 | ||||||
| @ -229,7 +228,6 @@ func TestCreateWithNowFuncOverride(t *testing.T) { | |||||||
| 
 | 
 | ||||||
| 	NEW := DB.Session(&gorm.Session{ | 	NEW := DB.Session(&gorm.Session{ | ||||||
| 		NowFunc: func() time.Time { | 		NowFunc: func() time.Time { | ||||||
| 			fmt.Println("11iiiin") |  | ||||||
| 			return curTime | 			return curTime | ||||||
| 		}, | 		}, | ||||||
| 	}) | 	}) | ||||||
| @ -263,3 +261,34 @@ func TestCreateWithNoGORMPrimayKey(t *testing.T) { | |||||||
| 		t.Errorf("No error should happen when create a record without a GORM primary key. But in the database this primary key exists and is the union of 2 or more fields\n But got: %s", err) | 		t.Errorf("No error should happen when create a record without a GORM primary key. But in the database this primary key exists and is the union of 2 or more fields\n But got: %s", err) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func TestSelectWithCreate(t *testing.T) { | ||||||
|  | 	user := *GetUser("select_create", Config{Account: true, Pets: 3, Toys: 3, Company: true, Manager: true, Team: 3, Languages: 3, Friends: 4}) | ||||||
|  | 	DB.Select("Account", "Toys", "Manager", "ManagerID", "Languages", "Name", "CreatedAt", "UpdatedAt", "Age", "Active").Create(&user) | ||||||
|  | 
 | ||||||
|  | 	var user2 User | ||||||
|  | 	DB.Preload("Account").Preload("Pets").Preload("Toys").Preload("Company").Preload("Manager").Preload("Team").Preload("Languages").Preload("Friends").First(&user2, user.ID) | ||||||
|  | 
 | ||||||
|  | 	user.Birthday = nil | ||||||
|  | 	user.Pets = nil | ||||||
|  | 	user.Company = Company{} | ||||||
|  | 	user.Team = nil | ||||||
|  | 	user.Friends = nil | ||||||
|  | 
 | ||||||
|  | 	CheckUser(t, user2, user) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestOmitWithCreate(t *testing.T) { | ||||||
|  | 	user := *GetUser("omit_create", Config{Account: true, Pets: 3, Toys: 3, Company: true, Manager: true, Team: 3, Languages: 3, Friends: 4}) | ||||||
|  | 	DB.Omit("Account", "Toys", "Manager", "Birthday").Create(&user) | ||||||
|  | 
 | ||||||
|  | 	var user2 User | ||||||
|  | 	DB.Preload("Account").Preload("Pets").Preload("Toys").Preload("Company").Preload("Manager").Preload("Team").Preload("Languages").Preload("Friends").First(&user2, user.ID) | ||||||
|  | 
 | ||||||
|  | 	user.Birthday = nil | ||||||
|  | 	user.Account = Account{} | ||||||
|  | 	user.Toys = nil | ||||||
|  | 	user.Manager = nil | ||||||
|  | 
 | ||||||
|  | 	CheckUser(t, user2, user) | ||||||
|  | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinzhu
						Jinzhu