Commit graph

9 commits

Author SHA1 Message Date
yisroel
e9779d8459
test ListRecentPosts use case
5 cases: zero/negative limit -> BadRequest; empty repo -> [];
returns posts ordered newest-first; respects limit truncation.
fails red - ListRecentPosts class missing.
2026-05-06 15:23:53 +03:00
yisroel
504554bf7f
test CreatePost use case
7 cases: null + whitespace title -> BadRequest; null +
whitespace body -> BadRequest; valid request returns Post with
correct userId/title/body and createdAt = clock.now(); the post
is findable via the repo afterwards; title and body get trimmed
of leading/trailing whitespace. fails red - CreatePost class
absent.
2026-05-06 15:22:57 +03:00
yisroel
d87215ff9b
test AuthMiddleware
4 cases: missing auth_token cookie -> 401 json
{error: unauthenticated}; unknown token -> 401; expired token
-> 401 + repo cleanup; valid token -> 200 with the User attached
to request->attributes['user']. fails red - middleware class
absent.
2026-05-06 15:16:35 +03:00
yisroel
30e97864c8
test Logout use case
2 cases: existing token's session gets removed; unknown token
is a no-op (deleteByToken stays idempotent).
2026-05-06 15:15:46 +03:00
yisroel
adc60a8059
test CreateSession use case
4 cases: returns Session with the generated token + supplied
user; createdAt matches injected Clock now; expiresAt is now+7d;
session is findable via SessionRepository->findByToken. fails
red - CreateSession class missing.
2026-05-06 15:15:04 +03:00
yisroel
2731e610e5
test AuthenticateUser use case
9 cases: null/empty/malformed email -> BadRequest; null/empty
password -> BadRequest; unknown email -> Unauthorized; wrong
password -> Unauthorized; valid creds return the User entity;
isAdmin flag survives the auth round-trip. fails red - the
AuthenticateUser class does not exist yet.
2026-05-06 15:14:03 +03:00
yisroel
fefc992431
test SignupUser use case
9 cases: null/empty/malformed email -> BadRequest; null or
sub-8-char password -> BadRequest; duplicate email -> DomainException;
valid signup returns User with hashed password and isAdmin=false;
user is findable by email afterwards; EmailAddress vo lowercases
the domain. fails red - SignupUser class not yet defined.
2026-05-06 15:12:52 +03:00
yisroel
f862348a31 test EmailAddress value object
7 cases: rejects spaces, double-@, empty input; trims whitespace;
lowercases domain only (preserving local-part case); equality by
normalized value; __toString and getDomain. fails red - class
App\\Shared\\ValueObject\\EmailAddress not yet defined.
2026-05-06 14:52:14 +03:00
yisroel
c03ffc8941 scaffold laravel 12 backend
composer create-project laravel/laravel + artisan install:api.
sanctum removed (custom session-cookie auth per ai/backend-context).
personal_access_tokens migration + config/sanctum.php deleted.
default .gitignore excludes vendor/, .env, etc - composer install
recreates vendor at setup time.
2026-05-06 14:46:41 +03:00