diff --git a/tests/domain/advanced-rendering.test.ts b/tests/domain/advanced-rendering.test.ts index e0260c92..052b8bd1 100644 --- a/tests/domain/advanced-rendering.test.ts +++ b/tests/domain/advanced-rendering.test.ts @@ -115,6 +115,10 @@ vi.mock("postprocessing", () => { constructor() {} } + class MockFXAAEffect { + constructor() {} + } + class MockSMAAEffect { constructor() {} } @@ -125,6 +129,7 @@ vi.mock("postprocessing", () => { DepthOfFieldEffect: MockDepthOfFieldEffect, EffectComposer: MockEffectComposer, EffectPass: MockEffectPass, + FXAAEffect: MockFXAAEffect, NormalPass: MockNormalPass, Pass: MockPass, RenderPass: MockRenderPass, @@ -189,6 +194,28 @@ import { } from "../../src/rendering/whitebox-bevel-material"; import { resolveWorldBackgroundSkyColorState } from "../../src/rendering/world-background-renderer"; +function resetPostprocessingState() { + postprocessingState.composerOptions.length = 0; + postprocessingState.composerPasses.length = 0; + postprocessingState.normalPassTextures.length = 0; + postprocessingState.ssaoCalls.length = 0; +} + +function getLastEffectPassEffectNames() { + const effectPasses = postprocessingState.composerPasses.filter( + (pass) => (pass as { name?: string }).name === "EffectPass" + ); + const lastEffectPass = effectPasses.at(-1) as + | { effects: unknown[] } + | undefined; + + return ( + lastEffectPass?.effects.map( + (effect) => (effect as { constructor: { name: string } }).constructor.name + ) ?? [] + ); +} + describe("resolveBoxVolumeRenderPaths", () => { it("uses authored fog and water paths when advanced rendering is enabled", () => { const settings = createDefaultWorldSettings().advancedRendering; diff --git a/tests/domain/scene-document-validation.test.ts b/tests/domain/scene-document-validation.test.ts index 030f11db..88b422a3 100644 --- a/tests/domain/scene-document-validation.test.ts +++ b/tests/domain/scene-document-validation.test.ts @@ -1847,6 +1847,11 @@ describe("validateSceneDocument", () => { mode: "filmic", exposure: 0 }, + antiAliasing: { + ...document.world.advancedRendering.antiAliasing, + enabled: "yes", + mode: "temporal" + }, fogPath: "high", waterPath: "ultra", depthOfField: { @@ -1958,6 +1963,14 @@ describe("validateSceneDocument", () => { code: "invalid-advanced-rendering-tone-mapping-exposure", path: "world.advancedRendering.toneMapping.exposure" }), + expect.objectContaining({ + code: "invalid-advanced-rendering-anti-aliasing-enabled", + path: "world.advancedRendering.antiAliasing.enabled" + }), + expect.objectContaining({ + code: "invalid-advanced-rendering-anti-aliasing-mode", + path: "world.advancedRendering.antiAliasing.mode" + }), expect.objectContaining({ code: "invalid-advanced-rendering-dof-focal-length", path: "world.advancedRendering.depthOfField.focalLength"