You've already forked Arcturus-Morningstar-Extended
mirror of
https://github.com/duckietm/Arcturus-Morningstar-Extended.git
synced 2026-06-20 07:26:18 +00:00
fix(furnidata): prefer renderer config source
Resolve furnidata from the renderer config and asset base before falling back to the legacy items.furnidata.path override. This keeps the emulator aligned with the same furnidata URL the UI/renderer already consume. Keep the legacy path as a compatibility fallback for older installs, but stop exposing absolute furnidata file paths in the startup log. The provider now reports a compact manager-style source label instead. Add coverage proving renderer-config furnidata.url wins over the legacy path when both are present.
This commit is contained in:
+29
@@ -78,4 +78,33 @@ class FurniDataManagerTest {
|
||||
assertEquals(assetBase.resolve("gamedata").resolve("FurnitureData.json"), source.path());
|
||||
assertFalse(source.directory());
|
||||
}
|
||||
|
||||
@Test
|
||||
void prefersRendererConfigOverLegacyFurnidataPath(@TempDir Path dir) throws Exception {
|
||||
Path legacy = dir.resolve("legacy").resolve("FurnitureData.json");
|
||||
Files.createDirectories(legacy.getParent());
|
||||
Files.writeString(legacy, "{}");
|
||||
|
||||
Path assetBase = dir.resolve("nitro-assets");
|
||||
Path rendererSource = assetBase.resolve("gamedata").resolve("FurnitureData.json");
|
||||
Files.createDirectories(rendererSource.getParent());
|
||||
Files.writeString(rendererSource, "{}");
|
||||
|
||||
Path rendererConfig = dir.resolve("renderer-config.json");
|
||||
Files.writeString(rendererConfig, """
|
||||
{
|
||||
"gamedata.url": "http://localhost:5173/nitro-assets/gamedata",
|
||||
"furnidata.url": "${gamedata.url}/FurnitureData.json?t=%timestamp%"
|
||||
}
|
||||
""");
|
||||
|
||||
FurnidataSourceResolver.Source source = FurnidataSourceResolver.resolveConfigured(
|
||||
legacy.toString(),
|
||||
rendererConfig.toString(),
|
||||
assetBase.toString());
|
||||
|
||||
assertTrue(source.ok());
|
||||
assertEquals(rendererSource, source.path());
|
||||
assertEquals("renderer-config furnidata.url", source.message());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user