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) } }