diff --git a/tests/AcDream.Core.Tests/World/TeleportAnimSequencerTests.cs b/tests/AcDream.Core.Tests/World/TeleportAnimSequencerTests.cs index fb712d7f..1b200eef 100644 --- a/tests/AcDream.Core.Tests/World/TeleportAnimSequencerTests.cs +++ b/tests/AcDream.Core.Tests/World/TeleportAnimSequencerTests.cs @@ -452,4 +452,19 @@ public sealed class TeleportAnimSequencerTests Assert.False(seq.IsActive); Assert.Equal(TeleportAnimState.Off, seq.State); } + + // --- Task 1.6: EnterTunnel fired for Portal path via Begin() --- + + [Fact] + public void Portal_EmitsEnterTunnel_OnFirstTick() + { + // Portal begins directly in Tunnel; EnterTunnel signals "world is now hidden". + var seq = new TeleportAnimSequencer(); + seq.Begin(TeleportEntryKind.Portal); + + // First tick: should emit PlayEnterSound AND EnterTunnel (both on entry) + var (_, evts) = seq.Tick(0f, worldReady: false); + Assert.Contains(TeleportAnimEvent.PlayEnterSound, evts); + Assert.Contains(TeleportAnimEvent.EnterTunnel, evts); + } }