feat: 增加顺运宝店铺筛选 (#151)
This commit is contained in:
@@ -657,7 +657,7 @@ func TestMigrate_v8新增顺运宝同步记录表(t *testing.T) {
|
||||
t.Fatal("v8 应该新增 syb_sync_runs 表")
|
||||
}
|
||||
var version int
|
||||
if err := db.QueryRow(`PRAGMA user_version`).Scan(&version); err != nil || version != 8 {
|
||||
if err := db.QueryRow(`PRAGMA user_version`).Scan(&version); err != nil || version != schemaVersion {
|
||||
t.Fatalf("迁移版本错误: version=%d err=%v", version, err)
|
||||
}
|
||||
user := model.User{
|
||||
@@ -683,6 +683,41 @@ func TestMigrate_v8新增顺运宝同步记录表(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestMigrate_v9回填顺运宝店铺名(t *testing.T) {
|
||||
db := newPublishedVersionDB(t, 7)
|
||||
if err := runSQLMigration(db, 8, migrationV8); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
now := model.NowISO()
|
||||
for _, row := range []struct{ id, raw string }{
|
||||
{"shop", `{"stock":{"shopName":" 测试店铺 "}}`},
|
||||
{"blank", `{"stock":{"shopName":" "}}`},
|
||||
{"missing", `{"stock":{}}`},
|
||||
{"invalid", `{not-json`},
|
||||
} {
|
||||
if _, err := db.Exec(`INSERT INTO syb_orders
|
||||
(syb_id,order_no,title,product_spec,quantity,syb_data,created_at,updated_at)
|
||||
VALUES (?,?,'商品','黑色,M',1,?,?,?)`, row.id, row.id, row.raw, now, now); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
if err := Migrate(db); err != nil {
|
||||
t.Fatalf("v8 升级 v9 失败: %v", err)
|
||||
}
|
||||
var shop sql.NullString
|
||||
if err := db.QueryRow(`SELECT shop_name FROM syb_orders WHERE syb_id='shop'`).Scan(&shop); err != nil || !shop.Valid || shop.String != "测试店铺" {
|
||||
t.Fatalf("店铺回填错误: %+v err=%v", shop, err)
|
||||
}
|
||||
for _, id := range []string{"blank", "missing", "invalid"} {
|
||||
if err := db.QueryRow(`SELECT shop_name FROM syb_orders WHERE syb_id=?`, id).Scan(&shop); err != nil || shop.Valid {
|
||||
t.Fatalf("%s 应保持 NULL: %+v err=%v", id, shop, err)
|
||||
}
|
||||
}
|
||||
if err := Migrate(db); err != nil {
|
||||
t.Fatalf("v9 重复迁移失败: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func newPublishedVersionDB(t *testing.T, version int) *sql.DB {
|
||||
t.Helper()
|
||||
db, err := Open(t.TempDir())
|
||||
|
||||
Reference in New Issue
Block a user