Add test for invalid advanced rendering settings validation

This commit is contained in:
2026-04-02 20:56:33 +02:00
parent 70dd017f11
commit 180825c661

View File

@@ -416,4 +416,88 @@ describe("validateSceneDocument", () => {
])
);
});
it("detects invalid advanced rendering settings", () => {
const document = createEmptySceneDocument();
document.world.advancedRendering = {
...document.world.advancedRendering,
enabled: true,
shadows: {
...document.world.advancedRendering.shadows,
mapSize: 3000,
type: "ultra" as unknown as "basic",
bias: Number.NaN
},
ambientOcclusion: {
...document.world.advancedRendering.ambientOcclusion,
samples: 0
},
bloom: {
...document.world.advancedRendering.bloom,
intensity: -0.25,
threshold: -1,
radius: -0.5
},
toneMapping: {
mode: "filmic" as unknown as "none",
exposure: 0
},
depthOfField: {
...document.world.advancedRendering.depthOfField,
focalLength: 0,
bokehScale: -2
}
};
const validation = validateSceneDocument(document);
expect(validation.errors).toEqual(
expect.arrayContaining([
expect.objectContaining({
code: "invalid-advanced-rendering-shadow-map-size",
path: "world.advancedRendering.shadows.mapSize"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-shadow-type",
path: "world.advancedRendering.shadows.type"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-shadow-bias",
path: "world.advancedRendering.shadows.bias"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-ao-samples",
path: "world.advancedRendering.ambientOcclusion.samples"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-bloom-intensity",
path: "world.advancedRendering.bloom.intensity"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-bloom-threshold",
path: "world.advancedRendering.bloom.threshold"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-bloom-radius",
path: "world.advancedRendering.bloom.radius"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-tone-mapping-mode",
path: "world.advancedRendering.toneMapping.mode"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-tone-mapping-exposure",
path: "world.advancedRendering.toneMapping.exposure"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-dof-focal-length",
path: "world.advancedRendering.depthOfField.focalLength"
}),
expect.objectContaining({
code: "invalid-advanced-rendering-dof-bokeh-scale",
path: "world.advancedRendering.depthOfField.bokehScale"
})
])
);
});
});