Skip to content

Conversation

@xurshudyan
Copy link
Contributor

The current implementations of Queue::fakeFor() and Queue::fakeExceptFor() use tap() to restore the original queue manager after running a callback. However, if the callback throws an exception—such as a failed assertion (ExpectationFailedException)— the restoration never happens. This leaves the fake queue active outside the intended scope, causing tests to leak state and behave unpredictably.

This PR replaces tap() with a try...finally block to guarantee the original queue manager is always restored, even if exceptions occur during the callback execution.

@taylorotwell taylorotwell merged commit 1536df3 into laravel:12.x Jul 1, 2025
62 checks passed
mohammad-fouladgar pushed a commit to mohammad-fouladgar/framework that referenced this pull request Jul 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants