fedi-feed-router/backend/tests/Feature/ApiAccessTest.php

55 lines
1.6 KiB
PHP
Raw Normal View History

2025-08-05 21:15:17 +02:00
<?php
namespace Tests\Feature;
2025-08-15 16:39:18 +02:00
use Domains\Article\Models\Article;
use Domains\Feed\Models\Feed;
use Domains\Platform\Models\PlatformAccount;
use Domains\Platform\Models\PlatformChannel;
use Domains\Settings\Models\Setting;
2025-08-05 21:15:17 +02:00
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class ApiAccessTest extends TestCase
{
use RefreshDatabase;
public function test_health_endpoint_is_accessible(): void
{
$response = $this->get('/health');
$response->assertSuccessful();
}
public function test_api_routes_are_publicly_accessible(): void
{
// Test that main API routes are accessible without authentication
$routes = [
'/api/v1/articles',
'/api/v1/dashboard/stats',
'/api/v1/platform-accounts',
'/api/v1/platform-channels',
'/api/v1/feeds',
'/api/v1/routing',
'/api/v1/settings',
'/api/v1/logs'
];
foreach ($routes as $route) {
$response = $this->get($route);
$this->assertTrue(
$response->isSuccessful(),
"API route {$route} should be publicly accessible"
);
}
}
public function test_fallback_route_returns_api_message(): void
{
$response = $this->get('/nonexistent-route');
$response->assertStatus(404);
$response->assertJson([
'message' => 'This is the FFR API backend. Use /api/v1/* endpoints or check the React frontend.',
'api_base' => '/api/v1'
]);
}
}