Add tests for foliage quality settings in world settings

This commit is contained in:
2026-05-02 10:55:12 +02:00
parent 0b2a24903e
commit c2f1e585b8

View File

@@ -7,7 +7,8 @@ import {
createDefaultWorldCelestialOrbitAuthoringSettings, createDefaultWorldCelestialOrbitAuthoringSettings,
createDefaultWorldShaderSkySettings, createDefaultWorldShaderSkySettings,
createWorldCelestialOrbitSettingsFromPeakDirection, createWorldCelestialOrbitSettingsFromPeakDirection,
createDefaultWorldSettings createDefaultWorldSettings,
resolveFoliageQualitySettings
} from "../../src/document/world-settings"; } from "../../src/document/world-settings";
describe("world settings helpers", () => { describe("world settings helpers", () => {
@@ -41,6 +42,9 @@ describe("world settings helpers", () => {
expect(clone.advancedRendering.godRays).not.toBe( expect(clone.advancedRendering.godRays).not.toBe(
source.advancedRendering.godRays source.advancedRendering.godRays
); );
expect(clone.advancedRendering.foliage).not.toBe(
source.advancedRendering.foliage
);
}); });
it("switches a solid background into a gradient while preserving the authored color as the top edge", () => { it("switches a solid background into a gradient while preserving the authored color as the top edge", () => {
@@ -183,6 +187,31 @@ describe("world settings helpers", () => {
expect(areWorldSettingsEqual(left, right)).toBe(false); expect(areWorldSettingsEqual(left, right)).toBe(false);
}); });
it("treats foliage quality settings as part of authored world equality", () => {
const left = createDefaultWorldSettings();
const right = cloneWorldSettings(left);
right.advancedRendering.foliage.densityMultiplier = 0.5;
expect(areWorldSettingsEqual(left, right)).toBe(false);
});
it("bounds resolved foliage quality multipliers", () => {
expect(
resolveFoliageQualitySettings({
enabled: true,
densityMultiplier: 5,
maxDistanceMultiplier: 0.01,
shadows: "full"
})
).toEqual({
enabled: true,
densityMultiplier: 2,
maxDistanceMultiplier: 0.1,
shadows: "full"
});
});
it("treats the scene project-time lighting toggle as part of authored world equality", () => { it("treats the scene project-time lighting toggle as part of authored world equality", () => {
const left = createDefaultWorldSettings(); const left = createDefaultWorldSettings();
const right = cloneWorldSettings(left); const right = cloneWorldSettings(left);