From 55fd3f197ace6711a8996770ccd92f7ee111d42b Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 22 Apr 2026 17:54:56 +0200 Subject: [PATCH] auto-git: [change] tests/unit/world-background-renderer.test.ts --- tests/unit/world-background-renderer.test.ts | 45 ++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/unit/world-background-renderer.test.ts b/tests/unit/world-background-renderer.test.ts index 4647bcd9..a612eb96 100644 --- a/tests/unit/world-background-renderer.test.ts +++ b/tests/unit/world-background-renderer.test.ts @@ -6,6 +6,7 @@ import { resolveWorldCelestialBodiesState, resolveWorldEnvironmentState } from "../../src/rendering/world-background-renderer"; +import type { WorldShaderSkyRenderState } from "../../src/rendering/world-shader-sky"; describe("resolveWorldEnvironmentState", () => { it("keeps the authored day environment when no night overlay is active", () => { @@ -127,6 +128,50 @@ describe("resolveWorldEnvironmentState", () => { intensity: 0.35 }); }); + + it("uses a shader-derived environment texture when shader mode is active", () => { + const world = createDefaultWorldSettings(); + const shaderTexture = new Texture(); + const shaderState = { + presetId: "defaultSky", + time: { + dayCount: 0, + timeOfDayHours: 12, + dayPhase: "day", + daylightFactor: 1, + twilightFactor: 0, + phaseWeights: { + day: 1, + dawn: 0, + dusk: 0, + night: 0 + } + } + } as unknown as WorldShaderSkyRenderState; + const shaderEnvironmentTextureResolver = { + resolveEnvironmentTexture: vi.fn().mockReturnValue(shaderTexture) + }; + world.background = { + mode: "shader" + }; + + const environment = resolveWorldEnvironmentState( + world.background, + null, + null, + null, + shaderState, + shaderEnvironmentTextureResolver + ); + + expect( + shaderEnvironmentTextureResolver.resolveEnvironmentTexture + ).toHaveBeenCalledWith(shaderState); + expect(environment).toEqual({ + texture: shaderTexture, + intensity: 1 + }); + }); }); describe("resolveWorldCelestialBodiesState", () => {