coolify/tests/Unit/Jobs/RestartProxyJobTest.php
Andras Bacsai 340e42aefd Dispatch restarting status immediately when job starts
Set proxy status to 'restarting' and dispatch ProxyStatusChangedUI event
at the very beginning of handle() method, before StopProxy runs. This
notifies the UI immediately so users know a restart is in progress,
rather than waiting until after the stop operation completes.

Also simplified unit tests to focus on testable job configuration
(middleware, tries, timeout) without complex SchemalessAttributes mocking.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 16:18:13 +01:00

58 lines
1.6 KiB
PHP

<?php
namespace Tests\Unit\Jobs;
use App\Jobs\RestartProxyJob;
use App\Models\Server;
use Illuminate\Queue\Middleware\WithoutOverlapping;
use Mockery;
use Tests\TestCase;
/**
* Unit tests for RestartProxyJob.
*
* These tests focus on testing the job's middleware configuration and constructor.
* Full integration tests for the job's handle() method are in tests/Feature/Proxy/
* because they require database and complex mocking of SchemalessAttributes.
*/
class RestartProxyJobTest extends TestCase
{
protected function tearDown(): void
{
Mockery::close();
parent::tearDown();
}
public function test_job_has_without_overlapping_middleware()
{
$server = Mockery::mock(Server::class);
$server->shouldReceive('getSchemalessAttributes')->andReturn([]);
$server->shouldReceive('getAttribute')->with('uuid')->andReturn('test-uuid');
$job = new RestartProxyJob($server);
$middleware = $job->middleware();
$this->assertCount(1, $middleware);
$this->assertInstanceOf(WithoutOverlapping::class, $middleware[0]);
}
public function test_job_has_correct_configuration()
{
$server = Mockery::mock(Server::class);
$job = new RestartProxyJob($server);
$this->assertEquals(1, $job->tries);
$this->assertEquals(60, $job->timeout);
$this->assertNull($job->activity_id);
}
public function test_job_stores_server()
{
$server = Mockery::mock(Server::class);
$job = new RestartProxyJob($server);
$this->assertSame($server, $job->server);
}
}