test email signup flow
This commit is contained in:
parent
a95903ed05
commit
9945163a2f
12 changed files with 631 additions and 0 deletions
|
|
@ -5,15 +5,21 @@ namespace Tests\Unit\Http\Controllers;
|
|||
use App\Auth\UseCases\AuthenticateUser\AuthenticateUser;
|
||||
use App\Auth\UseCases\CreateSession\CreateSession;
|
||||
use App\Auth\UseCases\Logout\Logout;
|
||||
use App\Email\EmailConfirmationToken\UseCases\CreateEmailConfirmationToken;
|
||||
use App\Http\Controllers\AuthController;
|
||||
use App\Http\Middleware\AuthMiddleware;
|
||||
use App\Shared\ValueObject\EmailAddress;
|
||||
use App\User\CreateUserDto;
|
||||
use App\User\UseCases\ConfirmUserEmail\ConfirmUserEmail;
|
||||
use App\User\UseCases\SignupUser\SignupUser;
|
||||
use DateTimeImmutable;
|
||||
use DateTimeZone;
|
||||
use Illuminate\Http\Request;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Tests\Fakes\FakeClock;
|
||||
use Tests\Fakes\FakeEmailConfirmationTokenRepository;
|
||||
use Tests\Fakes\FakeEmailer;
|
||||
use Tests\Fakes\FakeEmailFactory;
|
||||
use Tests\Fakes\FakePasswordHasher;
|
||||
use Tests\Fakes\FakeSessionRepository;
|
||||
use Tests\Fakes\FakeTokenGenerator;
|
||||
|
|
@ -47,7 +53,32 @@ class AuthControllerTest extends TestCase
|
|||
)),
|
||||
);
|
||||
$logout = new Logout($this->sessionRepository);
|
||||
$tokenRepository = new FakeEmailConfirmationTokenRepository;
|
||||
$signupUser = new SignupUser(
|
||||
$this->userRepository,
|
||||
new CreateEmailConfirmationToken(
|
||||
$tokenRepository,
|
||||
new FakeClock(new DateTimeImmutable(
|
||||
'2026-07-31T12:00:00',
|
||||
new DateTimeZone('UTC'),
|
||||
)),
|
||||
new FakeTokenGenerator(['email-token']),
|
||||
),
|
||||
new FakeEmailer,
|
||||
new FakeEmailFactory,
|
||||
);
|
||||
$confirmUserEmail = new ConfirmUserEmail(
|
||||
$tokenRepository,
|
||||
$this->userRepository,
|
||||
$this->passwordHasher,
|
||||
new FakeClock(new DateTimeImmutable(
|
||||
'2026-07-31T12:00:00',
|
||||
new DateTimeZone('UTC'),
|
||||
)),
|
||||
);
|
||||
$this->controller = new AuthController(
|
||||
$signupUser,
|
||||
$confirmUserEmail,
|
||||
$authenticateUser,
|
||||
$createSession,
|
||||
$logout,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue