mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-17 20:52:14 +01:00
Reduce overhead of health check endpoints
This commit is contained in:
committed by
Constantin Graf
parent
d3545b3c73
commit
cc10af0b97
@@ -51,6 +51,9 @@ class Kernel extends HttpKernel
|
|||||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||||
ForceJsonResponse::class,
|
ForceJsonResponse::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'health-check' => [
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Providers;
|
namespace App\Providers;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Web\HealthCheckController;
|
||||||
use Illuminate\Cache\RateLimiting\Limit;
|
use Illuminate\Cache\RateLimiting\Limit;
|
||||||
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
|
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -37,6 +38,12 @@ class RouteServiceProvider extends ServiceProvider
|
|||||||
});
|
});
|
||||||
|
|
||||||
$this->routes(function () {
|
$this->routes(function () {
|
||||||
|
Route::middleware('health-check')
|
||||||
|
->group(function () {
|
||||||
|
Route::get('health-check/up', [HealthCheckController::class, 'up']);
|
||||||
|
Route::get('health-check/debug', [HealthCheckController::class, 'debug']);
|
||||||
|
});
|
||||||
|
|
||||||
Route::middleware('api')
|
Route::middleware('api')
|
||||||
->prefix('api')
|
->prefix('api')
|
||||||
->name('api.')
|
->name('api.')
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
use App\Http\Controllers\Web\DashboardController;
|
use App\Http\Controllers\Web\DashboardController;
|
||||||
use App\Http\Controllers\Web\HealthCheckController;
|
|
||||||
use App\Http\Controllers\Web\HomeController;
|
use App\Http\Controllers\Web\HomeController;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Inertia\Inertia;
|
use Inertia\Inertia;
|
||||||
@@ -64,6 +63,3 @@ Route::middleware([
|
|||||||
})->name('import');
|
})->name('import');
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('health-check/up', [HealthCheckController::class, 'up']);
|
|
||||||
Route::get('health-check/debug', [HealthCheckController::class, 'debug']);
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
|||||||
namespace Tests\Unit\Endpoint\Web;
|
namespace Tests\Unit\Endpoint\Web;
|
||||||
|
|
||||||
use App\Http\Controllers\Web\HealthCheckController;
|
use App\Http\Controllers\Web\HealthCheckController;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
use PHPUnit\Framework\Attributes\CoversClass;
|
use PHPUnit\Framework\Attributes\CoversClass;
|
||||||
use PHPUnit\Framework\Attributes\UsesClass;
|
use PHPUnit\Framework\Attributes\UsesClass;
|
||||||
|
|
||||||
@@ -14,10 +15,16 @@ class HealthCheckEndpointTest extends EndpointTestAbstract
|
|||||||
{
|
{
|
||||||
public function test_up_endpoint_returns_ok(): void
|
public function test_up_endpoint_returns_ok(): void
|
||||||
{
|
{
|
||||||
|
// Arrange
|
||||||
|
DB::enableQueryLog();
|
||||||
|
DB::flushQueryLog();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
$response = $this->get('health-check/up');
|
$response = $this->get('health-check/up');
|
||||||
|
$queryLog = DB::getQueryLog();
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
|
$this->assertCount(0, $queryLog);
|
||||||
$response->assertSuccessful();
|
$response->assertSuccessful();
|
||||||
$response->assertExactJson([
|
$response->assertExactJson([
|
||||||
'success' => true,
|
'success' => true,
|
||||||
|
|||||||
Reference in New Issue
Block a user