add unit tests for user and auth
This commit is contained in:
parent
613180d459
commit
410b752183
6 changed files with 315 additions and 0 deletions
38
backend/tests/Unit/Auth/UseCases/LogoutTest.php
Normal file
38
backend/tests/Unit/Auth/UseCases/LogoutTest.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Unit\Auth\UseCases;
|
||||
|
||||
use App\Auth\UseCases\Logout\Logout;
|
||||
use App\Shared\ValueObject\EmailAddress;
|
||||
use App\User\User;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Tests\Fakes\FakeSessionRepository;
|
||||
|
||||
class LogoutTest extends TestCase
|
||||
{
|
||||
private FakeSessionRepository $sessionRepo;
|
||||
private Logout $logout;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$this->sessionRepo = new FakeSessionRepository();
|
||||
$this->logout = new Logout($this->sessionRepo);
|
||||
}
|
||||
|
||||
public function testDeletesSessionByToken(): void
|
||||
{
|
||||
$email = new EmailAddress('user@example.com');
|
||||
$user = new User(1, $email, 'hashed-password');
|
||||
|
||||
$session = $this->sessionRepo->create(new \App\Auth\CreateSessionDto(
|
||||
'session-token',
|
||||
$user,
|
||||
new \DateTimeImmutable(),
|
||||
new \DateTimeImmutable('+1 hour')
|
||||
));
|
||||
|
||||
$this->logout->execute('session-token');
|
||||
|
||||
$this->assertNull($this->sessionRepo->findByToken('session-token'));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue