Files
cmautobuy/admin/repository/spec_compare_test.go
T

31 lines
879 B
Go

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