CluPilotCloud/tests/Feature/Provisioning/TickProvisioningTest.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);
});