feat(integration): administrar instancias y asociaciones con permisos

Agrega endpoints para crear, editar y asociar instancias a clientes y tipos de sitio. Valida las credenciales contra el esquema del catalogo y devuelve metadatos sin secretos.

Restringe la administracion al rol admin autenticado y mantiene inmutables los codigos de integracion. Incluye pruebas de API, permisos, prioridad de resolucion, edicion compartida y renovacion de tokens.
This commit is contained in:
2026-09-04 12:48:06 -03:00
parent c0057c237a
commit ab5ea7dd33
15 changed files with 457 additions and 16 deletions

View File

@@ -2,11 +2,13 @@
namespace Tests\Feature\Integration;
use App\Domains\Auth\Models\User;
use App\Domains\Client\Models\Client;
use App\Domains\Integration\Models\ClientIntegration;
use App\Domains\Integration\Models\Integration;
use App\Domains\Integration\Services\ClientIntegrationService;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Laravel\Sanctum\Sanctum;
use Mockery;
use Tests\TestCase;
@@ -16,6 +18,7 @@ class ClientIntegrationControllerTest extends TestCase
public function test_store_returns_success_message_without_integration_data(): void
{
Sanctum::actingAs(User::factory()->create(['rol_codigo' => 'admin']));
$integration = Integration::create([
'integration_code' => 'test_integration',
'name' => 'Test Integration',
@@ -36,7 +39,7 @@ class ClientIntegrationControllerTest extends TestCase
->andReturn(new ClientIntegration);
});
$this->putJson('/api/clients/test-client/integrations/test_integration', [
$this->withHeader('Accept-Language', 'es')->putJson('/api/clients/test-client/integrations/test_integration', [
'integration_data' => [
'api_key' => 'secret',
],