Lockfile priority normalization
This commit is contained in:
@@ -8488,6 +8488,72 @@ func TestBuildSpellsAllowsDuplicateBaseKeyToBeSplitAcrossTwoOverrideRenames(t *t
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildBaseitemsSplitReaddsRetiredKeyToLockfile(t *testing.T) {
|
||||
root := testProjectRoot(t)
|
||||
mkdirAll(t, filepath.Join(root, "topdata", "data", "baseitems", "modules"))
|
||||
writeFile(t, filepath.Join(root, "topdata", "base_dialog.json"), "{}\n")
|
||||
writeFile(t, filepath.Join(root, "topdata", "data", "baseitems", "base.json"), `{
|
||||
"output": "baseitems.2da",
|
||||
"columns": ["label", "MaxRange"],
|
||||
"rows": [
|
||||
{"id": 58, "key": "baseitems:shortspear", "label": "shortspear", "MaxRange": "100"}
|
||||
]
|
||||
}`+"\n")
|
||||
writeFile(t, filepath.Join(root, "topdata", "data", "baseitems", "lock.json"), "{}\n")
|
||||
writeFile(t, filepath.Join(root, "topdata", "data", "baseitems", "modules", "00_ovr_baseitems_spear.json"), `{
|
||||
"overrides": [
|
||||
{
|
||||
"id": 58,
|
||||
"key": "baseitems:spear",
|
||||
"label": "spear"
|
||||
}
|
||||
]
|
||||
}`+"\n")
|
||||
writeFile(t, filepath.Join(root, "topdata", "data", "baseitems", "modules", "10_add_baseitems_shortspear.json"), `{
|
||||
"entries": {
|
||||
"baseitems:shortspear": {
|
||||
"label": "shortspear",
|
||||
"MaxRange": "255"
|
||||
}
|
||||
}
|
||||
}`+"\n")
|
||||
writeFile(t, filepath.Join(root, "topdata", "data", "baseitems", "modules", "20_ovr_baseitems_maxranges.json"), `{
|
||||
"overrides": [
|
||||
{
|
||||
"key": "baseitems:shortspear",
|
||||
"MaxRange": "255"
|
||||
}
|
||||
]
|
||||
}`+"\n")
|
||||
mkdirAll(t, filepath.Join(root, "reference"))
|
||||
writeFile(t, filepath.Join(root, "reference", "build.py"), "print('ok')\n")
|
||||
|
||||
result, err := BuildNative(testProject(root), nil)
|
||||
if err != nil {
|
||||
t.Fatalf("BuildNative failed: %v", err)
|
||||
}
|
||||
lockRaw, err := os.ReadFile(filepath.Join(root, "topdata", "data", "baseitems", "lock.json"))
|
||||
if err != nil {
|
||||
t.Fatalf("read baseitems lock: %v", err)
|
||||
}
|
||||
lockText := string(lockRaw)
|
||||
if !strings.Contains(lockText, `"baseitems:spear": 58`) {
|
||||
t.Fatalf("expected spear lock entry, got:\n%s", lockText)
|
||||
}
|
||||
if !strings.Contains(lockText, `"baseitems:shortspear": 59`) {
|
||||
t.Fatalf("expected shortspear lock entry on new row, got:\n%s", lockText)
|
||||
}
|
||||
|
||||
got, err := os.ReadFile(filepath.Join(result.Output2DADir, "baseitems.2da"))
|
||||
if err != nil {
|
||||
t.Fatalf("read baseitems.2da: %v", err)
|
||||
}
|
||||
text := string(got)
|
||||
if !strings.Contains(text, "58\tspear") || !strings.Contains(text, "59\tshortspear") {
|
||||
t.Fatalf("expected split spear rows in output, got:\n%s", text)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildSkillsIgnoresStaleBaseSpanLockDuringInitialLoad(t *testing.T) {
|
||||
root := testProjectRoot(t)
|
||||
mkdirAll(t, filepath.Join(root, "topdata", "data", "skills", "modules"))
|
||||
|
||||
Reference in New Issue
Block a user