Fix topdata lock file generation

This commit is contained in:
2026-05-23 00:52:16 +02:00
parent 44e6fab372
commit 7288d7e2b7
2 changed files with 52 additions and 0 deletions
+3
View File
@@ -80,6 +80,9 @@ func buildGenerated2DAAssetGroup(p *project.Project, cfg project.GeneratedTopDat
if err := rejectGenerated2DATLKValues(cfg.ID, collected); err != nil {
return nil, err
}
if _, _, err := saveNativeLockfiles(collected); err != nil {
return nil, fmt.Errorf("save generated topdata 2DA lockfiles %s: %w", cfg.ID, err)
}
tableRegistry, err := newResolvedTableRegistry(collected)
if err != nil {
+49
View File
@@ -6362,6 +6362,55 @@ func TestBuildGenerated2DAAssetsAppendsCachedModelsFromHeadVisualeffects(t *test
}
}
func TestBuildGenerated2DAAssetsWritesLockfilesForSelectedDatasets(t *testing.T) {
root := testProjectRoot(t)
mkdirAll(t, filepath.Join(root, "assets"))
mkdirAll(t, filepath.Join(root, "topdata", "data", "cachedmodels", "modules"))
writeFile(t, filepath.Join(root, "topdata", "data", "cachedmodels", "base.json"), `{
"columns": ["Model"],
"rows": [
{"id": 0, "key": "cachedmodels:base_model", "Model": "base_model"}
]
}`+"\n")
writeFile(t, filepath.Join(root, "topdata", "data", "cachedmodels", "modules", "add_chatbubble.json"), `{
"entries": {
"cachedmodels:vdr_chatbubble": {
"Model": "vdr_chatbubble"
}
}
}`+"\n")
p := testProject(root)
p.Config.Paths.Assets = "assets"
p.Config.Generated.TopData2DA = []project.GeneratedTopData2DAConfig{
{
ID: "cachedmodels",
Source: "topdata",
Output: ".cache/generated-assets/cachedmodels-2da",
IncludeDatasets: []string{"cachedmodels"},
PackageRoot: "vfxs",
},
}
if _, err := BuildGenerated2DAAssets(p, nil); err != nil {
t.Fatalf("BuildGenerated2DAAssets failed: %v", err)
}
lockBytes, err := os.ReadFile(filepath.Join(root, "topdata", "data", "cachedmodels", "lock.json"))
if err != nil {
t.Fatalf("read generated cachedmodels lockfile: %v", err)
}
lockText := string(lockBytes)
for _, want := range []string{
`"cachedmodels:base_model": 0`,
`"cachedmodels:vdr_chatbubble": 1`,
} {
if !strings.Contains(lockText, want) {
t.Fatalf("expected generated asset lockfile to contain %q, got:\n%s", want, lockText)
}
}
}
func TestNormalizeProjectImportsLegacyLoadscreens(t *testing.T) {
root := testProjectRoot(t)
mkdirAll(t, filepath.Join(root, "topdata", "data"))