diff --git a/tests/AcDream.App.Tests/Streaming/LandblockBuildOriginTests.cs b/tests/AcDream.App.Tests/Streaming/LandblockBuildOriginTests.cs index 1de0a773..9abb646a 100644 --- a/tests/AcDream.App.Tests/Streaming/LandblockBuildOriginTests.cs +++ b/tests/AcDream.App.Tests/Streaming/LandblockBuildOriginTests.cs @@ -221,14 +221,30 @@ public sealed class LandblockBuildOriginTests origin)); streamer.Start(); - var loaded = Assert.IsType( - await DrainFirstAsync(streamer)); + LandblockStreamResult result = await DrainFirstAsync(streamer); + +#if DEBUG + // LandblockStreamer.HandleJob's near-payload check is "fail loud in + // Debug builds and strip in Release" (its own comment): the + // Debug.Assert fires on this deliberately-buggy factory, the test + // host's trace listener turns it into an exception, and the job's + // catch-all publishes it as Failed. That IS the designed Debug + // outcome — this test previously asserted the Release strip + // unconditionally and so failed on every full Debug run + // (found 2026-08-13; the campaign gates all run Release). + var failed = Assert.IsType(result); + Assert.Equal(landblockId, failed.LandblockId); + Assert.Equal(84ul, failed.Generation); + Assert.Contains("Far-tier factory returned Near payload", failed.Error); +#else + var loaded = Assert.IsType(result); Assert.Equal(LandblockStreamTier.Far, loaded.Tier); Assert.Empty(loaded.Landblock.Entities); Assert.Same(PhysicsDatBundle.Empty, loaded.Landblock.PhysicsDats); Assert.Null(loaded.Build.EnvCells); Assert.Equal(origin, loaded.Build.Origin); +#endif } [Fact]