Laravel - Mocking - Job Chains
The Queue
facade's assertPushedWithChain
and assertPushedWithoutChain
methods may be used to inspect the job chain of a pushed job. The assertPushedWithChain
method accepts the primary job as its first argument and an array of chained jobs as its second argument:
use App\Jobs\RecordShipment;
use App\Jobs\ShipOrder;
use App\Jobs\UpdateInventory;
use Illuminate\Support\Facades\Queue;
Queue::assertPushedWithChain(ShipOrder::class, [
RecordShipment::class,
UpdateInventory::class
]);
As you can see in the example above, the array of chained jobs may be an array of the job's class names. However, you may also provide an array of actual job instances. When doing so, Laravel will ensure that the job instances are of the same class and have the same property values of the chained jobs dispatched by your application:
Queue::assertPushedWithChain(ShipOrder::class, [
new RecordShipment,
new UpdateInventory,
]);
You may use the assertPushedWithoutChain
method to assert that a job was pushed without a chain of jobs:
Queue::assertPushedWithoutChain(ShipOrder::class);