Commit Graph

112 Commits

Author SHA1 Message Date
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
aferrer ba7e650c70 chore: update ui components 2026-05-11 18:20:23 +02:00
aferrer 1bf6729d52 chore: update dependencies and migrate tooling 2026-05-11 18:11:06 +02:00
aferrer 96417fda4a refactor: update next dependency version to 15.3.6 2025-12-08 20:09:38 +01:00
aferrer 4650be830b refactor: update accepted file types for CSV uploads in import form and schema 2025-11-13 13:14:52 +01:00
aferrer bcbac2998c refactor: add NODE_ENV and DEMO_MODE settings to README for development environment 2025-11-12 20:37:12 +01:00