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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants