21 lines
779 B
PHP
21 lines
779 B
PHP
<?php
|
|
|
|
use App\Console\TickProvisioning;
|
|
use App\Models\ProvisioningRun;
|
|
use App\Provisioning\Jobs\AdvanceRunJob;
|
|
use Illuminate\Support\Facades\Queue;
|
|
|
|
it('dispatches advance jobs only for due running or waiting runs', function () {
|
|
Queue::fake();
|
|
|
|
ProvisioningRun::factory()->create(['status' => 'waiting', 'next_attempt_at' => now()->subMinute()]);
|
|
ProvisioningRun::factory()->create(['status' => 'running', 'next_attempt_at' => null]);
|
|
ProvisioningRun::factory()->create(['status' => 'waiting', 'next_attempt_at' => now()->addHour()]);
|
|
ProvisioningRun::factory()->create(['status' => 'completed']);
|
|
ProvisioningRun::factory()->create(['status' => 'paused']);
|
|
|
|
app(TickProvisioning::class)();
|
|
|
|
Queue::assertPushed(AdvanceRunJob::class, 2);
|
|
});
|