feat: 回填店铺关联PDD空规格 (#194)

This commit is contained in:
chengma
2026-08-12 18:31:14 +08:00
parent 13105faf1f
commit 8f7fb098ad
5 changed files with 595 additions and 24 deletions
+30
View File
@@ -0,0 +1,30 @@
package repository
import (
"testing"
"database/sql"
_ "modernc.org/sqlite"
)
func TestReplaceEmptyPDDSpecsUsesExpectedRawAsLock(t *testing.T) {
db, err := sql.Open("sqlite", ":memory:")
if err != nil {
t.Fatal(err)
}
defer db.Close()
if _, err := db.Exec(`CREATE TABLE pdd_products(goods_id TEXT PRIMARY KEY, skus_json TEXT, deleted_at TEXT, updated_at TEXT)`); err != nil {
t.Fatal(err)
}
if _, err := db.Exec(`INSERT INTO pdd_products(goods_id,skus_json) VALUES('P1','')`); err != nil {
t.Fatal(err)
}
ok, err := ReplaceEmptyPDDSpecs(db, "P1", "", `{"skus":[]}`, "2026-08-12T00:00:00Z")
if err != nil || !ok {
t.Fatalf("首次更新应成功: ok=%v err=%v", ok, err)
}
ok, err = ReplaceEmptyPDDSpecs(db, "P1", "", `{"skus":[1]}`, "2026-08-12T00:00:01Z")
if err != nil || ok {
t.Fatalf("原值已变化时必须跳过: ok=%v err=%v", ok, err)
}
}