format: fix psr12 style issues
phpcbf auto-fixes: string concatenation spacing, single-line class braces, closing brace placement.
1
backend/.phpunit.cache/test-results
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":2,"defects":{"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testAuthenticatesWithValidCredentials":8,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsBadRequestWhenEmailIsEmpty":8,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsBadRequestWhenPasswordIsEmpty":8,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsBadRequestWhenEmailIsNull":8,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsBadRequestWhenPasswordIsNull":8,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsUnauthorizedForUnknownEmail":8,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsUnauthorizedForWrongPassword":8,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testReturnsNewInstanceOnEachCall":8,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testCreatesSessionWithGivenToken":8,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testCreatesSessionWithUser":8,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testCreatesSessionWithCreatedAtFromClock":8,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testCreatesSessionWithExpirySevenDaysLater":8,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testPersistsSessionInRepository":8,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testFreshInstanceReturnedOnEachCall":8,"Tests\\Unit\\Auth\\UseCases\\LogoutTest::testDeletesSessionByToken":8,"Tests\\Unit\\Auth\\UseCases\\LogoutTest::testDoesNotThrowForUnknownToken":8,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testPassesRequestToHandlerWhenCookieIsValid":8,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testReturns401WhenCookieIsMissing":8,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testReturns401WhenCookieIsEmpty":8,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testReturns401WhenTokenIsUnknown":8,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testReturns401WhenSessionIsExpired":8,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testDeletesExpiredSession":8,"Tests\\Unit\\Controllers\\AuthControllerTest::testLoginReturnsUserAndSetsCookie":8,"Tests\\Unit\\Controllers\\AuthControllerTest::testLoginReturns400ForMissingEmail":8,"Tests\\Unit\\Controllers\\AuthControllerTest::testLoginReturns401ForInvalidCredentials":8,"Tests\\Unit\\Controllers\\AuthControllerTest::testLogoutClearsCookieAndReturns204":8,"Tests\\Unit\\Controllers\\AuthControllerTest::testMeReturnsUserFromAttribute":8},"times":{"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testAuthenticatesWithValidCredentials":0.001,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsBadRequestWhenEmailIsEmpty":0,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsBadRequestWhenPasswordIsEmpty":0,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsBadRequestWhenEmailIsNull":0,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsBadRequestWhenPasswordIsNull":0,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsUnauthorizedForUnknownEmail":0,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testThrowsUnauthorizedForWrongPassword":0,"Tests\\Unit\\Auth\\UseCases\\AuthenticateUserTest::testReturnsNewInstanceOnEachCall":0,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testCreatesSessionWithGivenToken":0,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testCreatesSessionWithUser":0,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testCreatesSessionWithCreatedAtFromClock":0,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testCreatesSessionWithExpirySevenDaysLater":0,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testPersistsSessionInRepository":0,"Tests\\Unit\\Auth\\UseCases\\CreateSessionTest::testFreshInstanceReturnedOnEachCall":0,"Tests\\Unit\\Auth\\UseCases\\LogoutTest::testDeletesSessionByToken":0,"Tests\\Unit\\Auth\\UseCases\\LogoutTest::testDoesNotThrowForUnknownToken":0,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testPassesRequestToHandlerWhenCookieIsValid":0.001,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testReturns401WhenCookieIsMissing":0,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testReturns401WhenCookieIsEmpty":0.001,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testReturns401WhenTokenIsUnknown":0,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testReturns401WhenSessionIsExpired":0,"Tests\\Unit\\Middleware\\AuthMiddlewareTest::testDeletesExpiredSession":0,"Tests\\Unit\\Controllers\\AuthControllerTest::testLoginReturnsUserAndSetsCookie":0.001,"Tests\\Unit\\Controllers\\AuthControllerTest::testLoginReturns400ForMissingEmail":0,"Tests\\Unit\\Controllers\\AuthControllerTest::testLoginReturns401ForInvalidCredentials":0.006,"Tests\\Unit\\Controllers\\AuthControllerTest::testLogoutClearsCookieAndReturns204":0,"Tests\\Unit\\Controllers\\AuthControllerTest::testMeReturnsUserFromAttribute":0}}
|
||||
|
|
@ -12,5 +12,6 @@ class CreateSessionDto
|
|||
public User $user,
|
||||
public DateTimeImmutable $createdAt,
|
||||
public DateTimeImmutable $expiresAt,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@ class Session
|
|||
private User $user,
|
||||
private DateTimeImmutable $createdAt,
|
||||
private DateTimeImmutable $expiresAt,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
public function getToken(): string
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,7 +14,8 @@ class AuthenticateUser
|
|||
public function __construct(
|
||||
private UserRepository $userRepo,
|
||||
private PasswordHasher $hasher,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws BadRequestException
|
||||
|
|
|
|||
|
|
@ -7,5 +7,6 @@ class AuthenticateUserRequest
|
|||
public function __construct(
|
||||
public ?string $email,
|
||||
public ?string $password,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,8 @@ class CreateSession
|
|||
private SessionRepository $sessionRepo,
|
||||
private TokenGenerator $tokenGenerator,
|
||||
private Clock $clock,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
public function execute(User $user): Session
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@ class Logout
|
|||
{
|
||||
public function __construct(
|
||||
private SessionRepository $sessionRepo,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
public function execute(string $token): void
|
||||
{
|
||||
|
|
|
|||
|
|
@ -20,7 +20,8 @@ class AuthController
|
|||
private AuthenticateUser $authenticateUser,
|
||||
private CreateSession $createSession,
|
||||
private Logout $logout,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
public function login(
|
||||
ServerRequestInterface $request,
|
||||
|
|
|
|||
|
|
@ -4,4 +4,6 @@ namespace App\Exceptions;
|
|||
|
||||
use DomainException;
|
||||
|
||||
class BadRequestException extends DomainException {}
|
||||
class BadRequestException extends DomainException
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,6 @@ namespace App\Exceptions;
|
|||
|
||||
use DomainException;
|
||||
|
||||
class UnauthorizedException extends DomainException {}
|
||||
class UnauthorizedException extends DomainException
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,7 +17,8 @@ class AuthMiddleware implements MiddlewareInterface
|
|||
public function __construct(
|
||||
private SessionRepository $sessionRepo,
|
||||
private Clock $clock,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
public function process(
|
||||
ServerRequestInterface $request,
|
||||
|
|
|
|||
|
|
@ -18,15 +18,15 @@ final readonly class EmailAddress
|
|||
$trimmed = trim($email);
|
||||
|
||||
if ($trimmed === '' || ! str_contains($trimmed, '@')) {
|
||||
throw new InvalidArgumentException(self::ERROR_MESSAGE." $email");
|
||||
throw new InvalidArgumentException(self::ERROR_MESSAGE . " $email");
|
||||
}
|
||||
|
||||
[$local, $domain] = explode('@', $trimmed, 2);
|
||||
$this->domain = mb_strtolower($domain);
|
||||
$normalized = $local.'@'.$this->domain;
|
||||
$normalized = $local . '@' . $this->domain;
|
||||
|
||||
if (filter_var($normalized, FILTER_VALIDATE_EMAIL) === false) {
|
||||
throw new InvalidArgumentException(self::ERROR_MESSAGE." $email");
|
||||
throw new InvalidArgumentException(self::ERROR_MESSAGE . " $email");
|
||||
}
|
||||
|
||||
$this->normalized = $normalized;
|
||||
|
|
|
|||
|
|
@ -9,5 +9,6 @@ class CreateUserDto
|
|||
public function __construct(
|
||||
public EmailAddress $email,
|
||||
public string $passwordHash,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@ class User
|
|||
private int $id,
|
||||
private EmailAddress $email,
|
||||
private string $passwordHash,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
public function getId(): int
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ use DateTimeImmutable;
|
|||
|
||||
class FakeClock implements Clock
|
||||
{
|
||||
public function __construct(private DateTimeImmutable $currentTime) {}
|
||||
public function __construct(private DateTimeImmutable $currentTime)
|
||||
{
|
||||
}
|
||||
|
||||
public function now(): DateTimeImmutable
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class FakePasswordHasher implements PasswordHasher
|
|||
{
|
||||
public function hash(string $password): string
|
||||
{
|
||||
return 'hashed:'.$password;
|
||||
return 'hashed:' . $password;
|
||||
}
|
||||
|
||||
public function verify(string $password, string $hash): bool
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ class FakeTokenGenerator implements TokenGenerator
|
|||
{
|
||||
private int $callCount = 0;
|
||||
|
||||
public function __construct(private array $tokens) {}
|
||||
public function __construct(private array $tokens)
|
||||
{
|
||||
}
|
||||
|
||||
public function generate(): string
|
||||
{
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ class AuthControllerTest extends TestCase
|
|||
|
||||
$cookieHeader = $response->getHeaderLine('Set-Cookie');
|
||||
$this->assertStringContainsString(
|
||||
AuthMiddleware::COOKIE_NAME.'=session-token-1',
|
||||
AuthMiddleware::COOKIE_NAME . '=session-token-1',
|
||||
$cookieHeader,
|
||||
);
|
||||
$this->assertStringContainsString('HttpOnly', $cookieHeader);
|
||||
|
|
@ -127,7 +127,7 @@ class AuthControllerTest extends TestCase
|
|||
|
||||
$cookieHeader = $response->getHeaderLine('Set-Cookie');
|
||||
$this->assertStringContainsString(
|
||||
AuthMiddleware::COOKIE_NAME.'=',
|
||||
AuthMiddleware::COOKIE_NAME . '=',
|
||||
$cookieHeader,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 2.1 MiB |
|
After Width: | Height: | Size: 279 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 145 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 264 KiB |
|
After Width: | Height: | Size: 586 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 68 KiB |