fix: fix unit test

This commit is contained in:
black 2023-02-10 14:57:00 +08:00
parent 96596e6608
commit 896b1be443

View File

@ -356,24 +356,29 @@ func TestDuplicateMany2ManyAssociation(t *testing.T) {
} }
func TestConcurrentMany2ManyAssociation(t *testing.T) { func TestConcurrentMany2ManyAssociation(t *testing.T) {
db, err := OpenTestConnection()
if err != nil {
t.Fatalf("open test connection failed, err: %+v", err)
}
var count = 3 var count = 3
var languages []Language var languages []Language
for i := 0; i < count; i++ { for i := 0; i < count; i++ {
language := Language{Code: fmt.Sprintf("consurrent %d", i)} language := Language{Code: fmt.Sprintf("consurrent %d", i)}
DB.Create(&language) db.Create(&language)
languages = append(languages, language) languages = append(languages, language)
} }
user := User{} user := User{}
DB.Create(&user) db.Create(&user)
DB.Preload("Languages").FirstOrCreate(&user) db.Preload("Languages").FirstOrCreate(&user)
var wg sync.WaitGroup var wg sync.WaitGroup
for i := 0; i < count; i++ { for i := 0; i < count; i++ {
wg.Add(1) wg.Add(1)
go func(user User, language Language) { go func(user User, language Language) {
err := DB.Model(&user).Association("Languages").Append(&language) err := db.Model(&user).Association("Languages").Append(&language)
AssertEqual(t, err, nil) AssertEqual(t, err, nil)
wg.Done() wg.Done()
@ -382,7 +387,7 @@ func TestConcurrentMany2ManyAssociation(t *testing.T) {
wg.Wait() wg.Wait()
var find User var find User
err := DB.Preload(clause.Associations).Where("id = ?", user.ID).First(&find).Error err = db.Preload(clause.Associations).Where("id = ?", user.ID).First(&find).Error
AssertEqual(t, err, nil) AssertEqual(t, err, nil)
AssertAssociationCount(t, find, "Languages", int64(count), "after concurrent append") AssertAssociationCount(t, find, "Languages", int64(count), "after concurrent append")
} }