New test TestCalculateSkillImproveCostNewSystem in chain of learning system

Updated learning_skill_category_difficulties to match rule set
removed SkillImprovementCost replaced by SkillImprovementCost2
This commit is contained in:
2026-02-01 13:21:16 +01:00
parent 3297c408d2
commit 39659bcb3e
20 changed files with 8095 additions and 90 deletions
+8 -7
View File
@@ -248,7 +248,7 @@ func copyMariaDBToSQLite(mariaDB, sqliteDB *gorm.DB) error {
&models.SpellLevelLECost{},
&models.SkillCategoryDifficulty{},
&models.WeaponSkillCategoryDifficulty{},
&models.SkillImprovementCost{},
&models.SkillImprovementCost2{},
&models.ClassCategoryLearningPoints{},
&models.ClassSpellPoints{},
&models.ClassTypicalSkill{},
@@ -368,10 +368,11 @@ func copyTableData(sourceDB, targetDB *gorm.DB, model interface{}) error {
}
// Batch in SQLite einfügen
// Use Save() instead of Create() to avoid GORM applying default values to zero values (e.g., false for booleans)
// Use Save() with SkipHooks to preserve raw values and avoid callbacks that rely on global DB state
db := targetDB.Session(&gorm.Session{SkipHooks: true})
for i := 0; i < recordsVal.Len(); i++ {
record := recordsVal.Index(i).Addr().Interface()
if err := targetDB.Save(record).Error; err != nil {
if err := db.Save(record).Error; err != nil {
logger.Error("Fehler beim Speichern von Datensatz in Batch %d für %s: %s", batchNum, tableName, err.Error())
return err
}
@@ -770,7 +771,7 @@ func copySQLiteToMariaDB(sqliteDB, mariaDB *gorm.DB) error {
&models.SpellLevelLECost{},
&models.SkillCategoryDifficulty{}, // Jetzt nach Skills
&models.WeaponSkillCategoryDifficulty{},
&models.SkillImprovementCost{},
&models.SkillImprovementCost2{},
&models.ClassCategoryLearningPoints{},
&models.ClassSpellPoints{},
&models.ClassTypicalSkill{},
@@ -923,8 +924,8 @@ func copyTableDataReverse(sourceDB, targetDB *gorm.DB, model interface{}) error
return fmt.Errorf("failed to read batch from source: %w", err)
}
records = batch
case *models.SkillImprovementCost:
var batch []models.SkillImprovementCost
case *models.SkillImprovementCost2:
var batch []models.SkillImprovementCost2
if err := sourceDB.Limit(batchSize).Offset(offset).Find(&batch).Error; err != nil {
return fmt.Errorf("failed to read batch from source: %w", err)
}
@@ -1162,7 +1163,7 @@ func clearMariaDBData(db *gorm.DB) error {
&models.Char{},
// Learning Costs System - Abhängige Tabellen (vor Skills/Spells löschen)
&models.SkillImprovementCost{},
&models.SkillImprovementCost2{},
&models.WeaponSkillCategoryDifficulty{},
&models.SkillCategoryDifficulty{},
&models.SpellLevelLECost{},
+4 -4
View File
@@ -32,7 +32,7 @@ func TestTableListCompleteness(t *testing.T) {
"*models.SpellLevelLECost": true,
"*models.SkillCategoryDifficulty": true,
"*models.WeaponSkillCategoryDifficulty": true,
"*models.SkillImprovementCost": true,
"*models.SkillImprovementCost2": true,
// GSMaster Base Data
"*models.Skill": true,
@@ -88,7 +88,7 @@ func TestTableListCompleteness(t *testing.T) {
&models.SpellLevelLECost{},
&models.SkillCategoryDifficulty{},
&models.WeaponSkillCategoryDifficulty{},
&models.SkillImprovementCost{},
&models.SkillImprovementCost2{},
&models.Skill{},
&models.WeaponSkill{},
&models.Spell{},
@@ -301,8 +301,8 @@ func getModelTypeName(model interface{}) string {
return "*models.SkillCategoryDifficulty"
case *models.WeaponSkillCategoryDifficulty:
return "*models.WeaponSkillCategoryDifficulty"
case *models.SkillImprovementCost:
return "*models.SkillImprovementCost"
case *models.SkillImprovementCost2:
return "*models.SkillImprovementCost2"
case *models.Skill:
return "*models.Skill"
case *models.WeaponSkill: