Romulo Felizola
poca broma el TDD
¿Cómo configurar para ver solo tus propios repositorios?
En el ámbito del desarrollo, proteger y gestionar adecuadamente nuestros recursos es crucial. Uno de los escenarios comunes es garantizar que los usuarios solo puedan visualizar, editar y eliminar sus propios repositorios. Aquí exploramos cómo lograrlo, asegurando que al acceder al listado de repositorios, solo se vean los que pertenecen al usuario logueado.
¿Qué pasos se requieren para configurar el acceso a los repositorios?
Verificación y Configuración Inicial:
Crear y Configurar Repositorios:
// Crear un usuario User::create([ 'name' => 'Usuario', 'email' => 'usuario@example.com', 'password' => bcrypt('password'), ]); // Crear repositorio asociado al usuario Repositorio::create([ 'user_id' => 1, // ID del usuario 'url' => 'http://example-repo.com' ]);
Configurar la Visualización:
Configurar la Vista y Controladores:
<table class="table"> <thead> <tr> <th>ID</th> <th>URL</th> </tr> </thead> <tbody> @forelse ($repositorios as $repositorio) <tr> <td>{{ $repositorio->id }}</td> <td>{{ $repositorio->url }}</td> </tr> @empty <tr> <td colspan="2">No hay repositorios creados.</td> </tr> @endforelse </tbody> </table>
¿Cómo probar y asegurarse de que la configuración es correcta?
Pruebas de Integración:
status 200.Visualización en el Navegador:
¿Por qué es importante controlar el acceso a los datos de esta manera?
Controlar el acceso a los datos según el usuario añade una capa crucial de seguridad y personalización en nuestros sistemas. Permite que cada usuario solo interactúe con sus propios datos, disminuyendo el riesgo de errores y mal manejo de información. Además, mejora la experiencia de usuario al proporcionar una interfaz más limpia y pertinente.
Te invitamos a seguir explorando y aprendiendo más allá de estos conceptos básicos. Mantén el impulso y la curiosidad al desarrollar, ya que cada pequeño reto es una oportunidad de crecimiento. ¡Continúa creando, probando e innovando!
Romulo Felizola
poca broma el TDD
Brian Sánchez Izquierdo
Otros métodos que pueden usar para extra afirmación son el assertViewIs() y assertViewHas()
Jimmy Buriticá Londoño
Te agradezco amplíes el funcionamiento de estos dos métodos.
Brian Sánchez Izquierdo
AssertViewHas . AssertViewIs
Mario Perez
Mario Perez
A mi me da este error y no pasa nunca el test, le quite el assertStatus 200 e igual me da error consiguiendo la cadena, aunque en el navegador si lo veo
Martin Campos
Si están utilizando vue para mostrar los datos $response->assertSee() no les funcionará lo de que muestre , ya que este función lee la vista cruda sin ser compliado por JavaScript. En el caso para validar si esta vació pueden utilizar la siguiente afirmación, el cual valida que vue tenga vacia la variable repositories.
$response->assertSee(htmlspecialchars_decode('repositories":[]'));
Si no utilizan htmlspecialchars_decode, & se remplazara por &, y no les funcionara.
• Tests\Feature\Http\Controllers\RepositoryControllerTest > index empty Expected response status code [200] but received 404. Failed asserting that 200 is identical to 404. at tests/Feature/Http/Controllers/RepositoryControllerTest.php:38 34▕ 35▕ $this 36▕ ->actingAs($user) 37▕ ->get('respositories') ➜ 38▕ ->assertStatus(200) 39▕ ->assertSee('No hay repositorios creados'); 40▕ } 41▕ 42▕ public function test_index_with_data() • Tests\Feature\Http\Controllers\RepositoryControllerTest > index with data Expected response status code [200] but received 404. Failed asserting that 200 is identical to 404. at tests/Feature/Http/Controllers/RepositoryControllerTest.php:50 46▕ 47▕ $this 48▕ ->actingAs($user) 49▕ ->get('respositories') ➜ 50▕ ->assertStatus(200) 51▕ ->assertSee($repository->id) 52▕ ->assertSee($repository->url); 53▕ } 54▕ Tests: 2 failed, 10 passed Time: 0.57s