package storage import ( "fmt" "testing" v2 "gitea.timerzz.com/kedaya_haitao/common/structs/v2" "gorm.io/driver/postgres" "gorm.io/gorm" ) func GetDevDB() (*gorm.DB, error) { dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Shanghai", "192.168.31.55", "timerzz", "zhhg1997", "kedaya_dev", "5432") return gorm.Open(postgres.Open(dsn), &gorm.Config{}) } var article = v2.Article{ Name: "test2", EnglishName: "test2", Pid: "111", Brand: "col", Desc: "desc", Image: "http://123", Available: false, CostPrice: 321, Providers: []v2.ProviderArticle{ { ID: 1, Pid: "111", Brand: "col", Link: "http://123", ProviderId: "coach2", SkuID: "sku2", Cost: v2.ProviderPrice{ OriginalPrice: 222, FinalPrice: 222, CalMark: "aaa", }, HistoryPrice: []v2.ProviderPrice{ { OriginalPrice: 222, FinalPrice: 222, CalMark: "uuuuu", }, }, }, }, SellPrice: 222, Sellers: []v2.SellerArticle{}, Rate: 222, Remark: "222", } func TestUpsetArticle(t *testing.T) { db, _ := GetDevDB() storage := NewStorage(db) err := db.AutoMigrate(&v2.Article{}, &v2.ProviderArticle{}, &v2.ProviderPrice{}, &v2.SellerArticle{}, &v2.SellerPrice{}) if err != nil { t.Fatal(err) } if err = storage.Article().Upsert(article); err != nil { t.Fatal(err) } }