Skip to content

Commit

Permalink
login tests
Browse files Browse the repository at this point in the history
  • Loading branch information
iamgergo committed Jan 25, 2024
1 parent a147520 commit 1062d6b
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/Http/Controllers/Auth/LoginController.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,6 @@ public function logout(Request $request): RedirectResponse

$request->session()->regenerateToken();

return Redirect::route('login');
return Redirect::route('root.auth.login');
}
}
3 changes: 1 addition & 2 deletions src/Http/Controllers/DashboardController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
namespace Cone\Root\Http\Controllers;

use Cone\Root\Root;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Response as ResponseFactory;

Expand All @@ -12,7 +11,7 @@ class DashboardController extends Controller
/**
* Handle the incoming request.
*/
public function __invoke(Request $request, Root $root): Response
public function __invoke(Root $root): Response
{
return ResponseFactory::view('root::dashboard', [
'widgets' => $root->widgets->toArray(),
Expand Down
56 changes: 56 additions & 0 deletions tests/Http/LoginControllerTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php

namespace Cone\Root\Tests\Http;

use Cone\Root\Tests\TestCase;
use Cone\Root\Tests\User;
use Illuminate\Auth\Events\Login;
use Illuminate\Auth\Events\Logout;
use Illuminate\Support\Facades\Event;

class LoginControllerTest extends TestCase
{
public function test_login_controller_shows_login_form(): void
{
$this->get('/root/login')
->assertOk()
->assertViewIs('root::auth.login');
}

public function test_login_controller_handles_login(): void
{
Event::fake([Login::class]);

$this->post('/root/login')
->assertRedirect()
->assertSessionHasErrors(['email', 'password']);

$user = User::factory()->create();

$this->post('/root/login', [
'email' => $user->email,
'password' => 'password',
])->assertRedirect()
->assertSessionDoesntHaveErrors();

Event::assertDispatched(Login::class, function ($event) use ($user) {
return $event->user->id === $user->id;
});
}

public function test_login_controller_handles_logout(): void
{
Event::fake([Logout::class]);

$user = User::factory()->create();

$this->app['auth']->login($user);

$this->post('/root/logout')
->assertRedirect();

Event::assertDispatched(Logout::class, function ($event) use ($user) {
return $event->user->id === $user->id;
});
}
}

0 comments on commit 1062d6b

Please sign in to comment.