Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/Tasks/Middleware/FinalizeTaskMiddleware.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ final class FinalizeTaskMiddleware
{
public function handle(Task $task, callable $next): void
{
$next($task);

$task->finalize();

$next($task);
}
}
25 changes: 24 additions & 1 deletion tests/Feature/TaskTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Bus;
use Illuminate\Support\Facades\Event;
use Illuminate\Contracts\Queue\ShouldQueue;

function getJobFromReflection(PendingDispatch $task): object
{
Expand Down Expand Up @@ -450,7 +451,6 @@ public function handle(): self

$middleware = new FinalizeTaskMiddleware;

// Call middleware with a next that simply returns the task
$middleware->handle($task, fn ($t) => $t);

Event::assertDispatched(Processed::class);
Expand Down Expand Up @@ -479,3 +479,26 @@ class ProcessWithFinalize extends Brain\Process

Event::assertDispatched(Processed::class);
});

it('queued tasks are finalized before going through next middleware', function (): void {
Event::fake();

class QueuedTask extends Task implements ShouldQueue
{
public function handle(): self
{
return $this;
}
}

class ProcessQueuedTask extends Brain\Process
{
protected array $tasks = [
QueuedTask::class,
];
}

ProcessQueuedTask::dispatchSync();

Event::assertDispatched(Processed::class);
});
Loading