Refactor vendor mappings to canonical PN catalog
This commit is contained in:
@@ -276,7 +276,7 @@ func TestWeightedMedianFallbackToMedianWhenNoWeights(t *testing.T) {
|
||||
|
||||
func TestBuildWarehousePricelistItems_UsesPrefixResolverAndWeightedAverage(t *testing.T) {
|
||||
db := openTestDB(t)
|
||||
if err := db.AutoMigrate(&models.StockLog{}, &models.Lot{}, &models.LotPartnumber{}); err != nil {
|
||||
if err := db.AutoMigrate(&models.StockLog{}, &models.Lot{}, &models.PartnumberBookItem{}); err != nil {
|
||||
t.Fatalf("automigrate: %v", err)
|
||||
}
|
||||
|
||||
@@ -311,20 +311,24 @@ func TestBuildWarehousePricelistItems_UsesPrefixResolverAndWeightedAverage(t *te
|
||||
}
|
||||
}
|
||||
|
||||
func TestPartnumberMappings_WildcardMatch(t *testing.T) {
|
||||
func TestPartnumberMappings_CatalogAndLotFallback(t *testing.T) {
|
||||
db := openTestDB(t)
|
||||
if err := db.AutoMigrate(&models.LotPartnumber{}, &models.Lot{}); err != nil {
|
||||
if err := db.AutoMigrate(&models.PartnumberBookItem{}, &models.Lot{}); err != nil {
|
||||
t.Fatalf("automigrate: %v", err)
|
||||
}
|
||||
|
||||
mappings := []models.LotPartnumber{
|
||||
{Partnumber: "R750*", LotName: "SERVER_R750"},
|
||||
{Partnumber: "HDD-01", LotName: "HDD_01"},
|
||||
mappings := []models.PartnumberBookItem{
|
||||
{Partnumber: "R750XD", LotsJSON: `[{"lot_name":"SERVER_R750","qty":1}]`},
|
||||
{Partnumber: "HDD-01", LotsJSON: `[{"lot_name":"HDD_01","qty":1}]`},
|
||||
}
|
||||
if err := db.Create(&mappings).Error; err != nil {
|
||||
t.Fatalf("seed mappings: %v", err)
|
||||
}
|
||||
if err := db.Create(&models.Lot{LotName: "MEM_DDR5_16G_4800"}).Error; err != nil {
|
||||
if err := db.Create(&[]models.Lot{
|
||||
{LotName: "MEM_DDR5_16G_4800"},
|
||||
{LotName: "SERVER_R750"},
|
||||
{LotName: "HDD_01"},
|
||||
}).Error; err != nil {
|
||||
t.Fatalf("seed lot: %v", err)
|
||||
}
|
||||
|
||||
@@ -334,7 +338,7 @@ func TestPartnumberMappings_WildcardMatch(t *testing.T) {
|
||||
}
|
||||
|
||||
if got := resolver.MatchLots("R750XD"); len(got) != 1 || got[0] != "SERVER_R750" {
|
||||
t.Fatalf("expected wildcard match SERVER_R750, got %#v", got)
|
||||
t.Fatalf("expected catalog match SERVER_R750, got %#v", got)
|
||||
}
|
||||
if got := resolver.MatchLots("HDD-01"); len(got) != 1 || got[0] != "HDD_01" {
|
||||
t.Fatalf("expected exact match HDD_01, got %#v", got)
|
||||
|
||||
Reference in New Issue
Block a user