aferrer
|
ea37fc8d70
|
test(i18n): cover movement page localization
|
2026-06-14 02:05:01 +02:00 |
|
aferrer
|
f62cd6fb37
|
feat(i18n): localize movement UI
|
2026-06-14 01:20:23 +02:00 |
|
aferrer
|
7d5ab64653
|
feat(i18n): localize asset validation messages
|
2026-06-13 17:23:01 +02:00 |
|
aferrer
|
3d6b13dc1c
|
feat(i18n): localize inventory assets UI
|
2026-06-13 17:07:51 +02:00 |
|
aferrer
|
c67e86c91b
|
feat(i18n): localize item validation messages
|
2026-06-13 11:28:28 +02:00 |
|
aferrer
|
964b1648ca
|
feat(i18n): localize inventory items UI
|
2026-06-13 11:12:02 +02:00 |
|
aferrer
|
9f7d1b8ef8
|
feat(i18n): localize category action messages
|
2026-06-12 23:21:08 +02:00 |
|
aferrer
|
e9a07eb28e
|
feat(i18n): localize inventory categories UI
|
2026-06-12 23:01:33 +02:00 |
|
aferrer
|
589b042e7c
|
feat(i18n): localize submit button states
|
2026-06-12 09:51:19 +02:00 |
|
aferrer
|
2fa6611719
|
feat(i18n): localize shell and common UI
|
2026-06-11 17:54:56 +02:00 |
|
aferrer
|
c3cf4182ad
|
feat(i18n): add language switcher
|
2026-06-11 16:16:06 +02:00 |
|
aferrer
|
18a192a069
|
chore: apply Biome cleanup
|
2026-06-11 04:56:01 +02:00 |
|
aferrer
|
ac3dfe69cd
|
feat(i18n): add locale dictionaries and pilot surfaces
|
2026-06-11 04:55:47 +02:00 |
|
aferrer
|
2c6d6bffcd
|
docs: document testing setup
|
2026-06-07 16:56:33 +02:00 |
|
aferrer
|
f2b9239d82
|
test: add initial unit integration and e2e coverage
Adds the initial testing baseline for the project:
Unit coverage:
- Zod schemas for items, assignments, movements, categories, auth, recipients, users, and assets
- password hashing and verification helpers
- auth role helper functions
Integration coverage with PostgreSQL Testcontainers:
- item use-cases: create, duplicate names, delete constraints
- assignment use-cases: create, insufficient stock, return, double return
- asset use-cases: available/assigned creation and lifecycle transitions
- user use-cases: create/update, uniqueness, admin safeguards, password reset
- category use-cases: create/update/delete constraints
- recipient use-cases: create/update and uniqueness constraints
E2E smoke coverage with Playwright:
- unauthenticated redirect to login
- seeded admin login
- dashboard load
- admin users page
- inventory items page
- assignments page
Also configures:
- Vitest
- Playwright
- PostgreSQL Testcontainers helpers
- deterministic E2E admin bootstrap
- test artifact ignores
Validation:
- bun run test: 9 files / 37 tests passed
- bun run test:e2e: 3 passed
- bunx tsc --noEmit: passed
- bunx prisma validate: passed
|
2026-06-07 04:14:01 +02:00 |
|
aferrer
|
cb01f4f8ef
|
docs: update README for use-case architecture
|
2026-06-05 15:30:21 +02:00 |
|
aferrer
|
bc5926a5de
|
chore(prisma): fold item name unique index into init migration
|
2026-06-04 22:42:51 +02:00 |
|
aferrer
|
16a68e01ab
|
Merge pull request #3 from refactor/use-cases-architecture
refactor: split actions into use cases and repositories
|
2026-06-04 20:31:43 +00:00 |
|
aferrer
|
a7f7ace527
|
refactor(structure): move legacy import and remove lib leftovers
|
2026-06-04 22:13:26 +02:00 |
|
aferrer
|
da9ae0582b
|
fix(auth): update login imports after action move
|
2026-06-04 22:13:00 +02:00 |
|
aferrer
|
24d2d59bbc
|
refactor(recipients): move mutations into use cases
|
2026-06-04 22:12:36 +02:00 |
|
aferrer
|
f48ccb8c50
|
refactor(categories): move mutations into use cases
|
2026-06-04 22:12:06 +02:00 |
|
aferrer
|
0af25417ab
|
refactor(items): move workflows into use cases
|
2026-06-04 22:11:40 +02:00 |
|
aferrer
|
2b908b24f6
|
refactor(assets): move workflows into use cases
|
2026-06-04 22:10:43 +02:00 |
|
aferrer
|
e88fb2e6d4
|
refactor(assignments): move workflows into use cases
|
2026-06-04 22:09:54 +02:00 |
|
aferrer
|
5034ec0646
|
feat(users): add admin user management and bootstrap seed
|
2026-06-04 22:03:13 +02:00 |
|
aferrer
|
12cbec92a0
|
feat(auth): add role guards and protect admin routes
|
2026-06-04 21:57:39 +02:00 |
|
aferrer
|
601dea9526
|
chore(tooling): align biome vscode and ui config
|
2026-06-04 21:53:42 +02:00 |
|
aferrer
|
9ecb543c18
|
chore(prisma): move schema and generated client workflow
|
2026-06-04 21:53:08 +02:00 |
|
aferrer
|
72973bfb3f
|
refactor: use z.input for item schema form types
|
2026-05-14 12:58:26 +02:00 |
|
aferrer
|
4b40f50e7f
|
refactor: add and use assignment data output type in services
|
2026-05-14 11:05:19 +02:00 |
|
aferrer
|
feae1d2cda
|
chore: update gitignore for prisma generated files and VSCode settings
|
2026-05-12 00:55:25 +02:00 |
|
aferrer
|
0d877cbba6
|
chore: update biome.json ignore configuration
|
2026-05-12 00:54:32 +02:00 |
|
aferrer
|
eb07760748
|
fix: redirect to login page after sign out
|
2026-05-12 00:53:35 +02:00 |
|
aferrer
|
d748e3e6c5
|
refactor: remove unused SITE_URL constant
|
2026-05-12 00:52:54 +02:00 |
|
aferrer
|
9c7e987d6e
|
fix: add button type attribute to reset button
|
2026-05-12 00:51:24 +02:00 |
|
aferrer
|
e75cd424e3
|
refactor: fix React keys and cleanup effect dependencies in sidebar
|
2026-05-12 00:50:46 +02:00 |
|
aferrer
|
1ec992caf6
|
refactor: add proper types, fix zod error handling, and simplify import mapping logic
|
2026-05-12 00:49:23 +02:00 |
|
aferrer
|
bb0948f590
|
refactor: use z.input instead of z.infer for form types in assignment schemas
|
2026-05-12 00:47:52 +02:00 |
|
aferrer
|
6f16d26a8e
|
refactor: simplify optional checks and boolean coercion in services
|
2026-05-12 00:46:41 +02:00 |
|
aferrer
|
a7b547a92d
|
types: replace any with unknown
|
2026-05-12 00:44:46 +02:00 |
|
aferrer
|
d60801e6c2
|
style: use explicit node builtin import for child_process
|
2026-05-12 00:43:27 +02:00 |
|
aferrer
|
51e7a98d3f
|
style: replace string concatenation with template literals
|
2026-05-12 00:42:21 +02:00 |
|
aferrer
|
fab2ba8835
|
chore: prevent unhandled promise lint warnings in assignment toast handlers
|
2026-05-12 00:40:44 +02:00 |
|
aferrer
|
5bb5223cd9
|
fix: Use radix 10 for parsing page parameter in search components
|
2026-05-12 00:37:42 +02:00 |
|
aferrer
|
c25a8e0da3
|
feat: add accessibility roles and aria-labels to SVG icons in the home page
|
2026-05-12 00:35:03 +02:00 |
|
aferrer
|
5ac2dc5277
|
refactor: update type imports to use 'type' for better TypeScript compatibility across the codebase
|
2026-05-11 19:06:54 +02:00 |
|
aferrer
|
fd18692110
|
refactor: update Zod schemas to v4
|
2026-05-11 18:59:30 +02:00 |
|
aferrer
|
f5c759fc3a
|
feat: add custom dark variant to globals.css
|
2026-05-11 18:48:02 +02:00 |
|
aferrer
|
b2fc8b83ad
|
chore: update biome settings
|
2026-05-11 18:46:56 +02:00 |
|