aferrer
|
1142855578
|
feat(assets): thread previousStatus through movement writes
|
2026-06-25 03:25:47 +02:00 |
|
aferrer
|
a0a1e1bdc8
|
feat(movements): gate StockMovementLine on trackingType QUANTITY
|
2026-06-25 03:22:08 +02:00 |
|
aferrer
|
8f7a406e83
|
fix(assets): omit phantom stock line for ASSIGNED assets
|
2026-06-25 03:14:00 +02:00 |
|
aferrer
|
95c52579d1
|
refactor(movements): normalize snapshot convention to mutate-then-write
|
2026-06-25 03:11:15 +02:00 |
|
aferrer
|
575cd2d9a0
|
feat(items): emit ISSUE/ADJUSTMENT movement on stock decrease
|
2026-06-25 03:03:26 +02:00 |
|
aferrer
|
0d38626f3a
|
test(cleanup): remove legacy admin users references
|
2026-06-20 16:27:36 +02:00 |
|
aferrer
|
f32d55a7b0
|
feat(assets): add asset metadata views and enforce assignment transitions
|
2026-06-19 17:14:22 +02:00 |
|
aferrer
|
c1763ed007
|
feat(assignments): support line-based returns and authenticated updates
|
2026-06-19 17:14:22 +02:00 |
|
aferrer
|
965a04a468
|
feat(items): adapt item flows to inventory schema defaults and SKU generation
|
2026-06-19 17:14:22 +02:00 |
|
aferrer
|
7b8a415c6a
|
feat(people): align people, users, and categories with active inventory records
|
2026-06-19 17:14:22 +02:00 |
|
aferrer
|
6d34a2f74f
|
feat(inventory): support line-based assignments and movements
|
2026-06-19 01:05:33 +02:00 |
|
aferrer
|
8e6a00c2a9
|
feat(people): adapt person user flows to status model
|
2026-06-19 01:05:33 +02:00 |
|
aferrer
|
01d89cd21b
|
feat(auth): align login and bootstrap with new user schema
|
2026-06-19 01:05:33 +02:00 |
|
aferrer
|
d6b42d78e7
|
refactor: consolidate admin/users management under /people
|
2026-06-17 09:32:26 +02:00 |
|
aferrer
|
1f5a849bf5
|
feat: unify Person and User creation form with conditional password
|
2026-06-16 21:48:59 +02:00 |
|
aferrer
|
e5717461cf
|
feat: add unified Person+User creation backend
|
2026-06-16 21:21:17 +02:00 |
|
aferrer
|
68c2983d36
|
refactor: remove username from User model, login by email only
|
2026-06-16 16:18:42 +02:00 |
|
aferrer
|
caf19575c6
|
refactor: rename DB columns recipientId to personId
|
2026-06-16 13:37:58 +02:00 |
|
aferrer
|
cf6820a7aa
|
refactor: rename remaining recipient references to person/people
|
2026-06-16 13:34:15 +02:00 |
|
aferrer
|
ecc3cf1b55
|
refactor: rename recipients route to people, update all frontend references
|
2026-06-16 11:26:21 +02:00 |
|
aferrer
|
d67f31cf54
|
refactor: rename Recipient to Person, remove username, add userId FK
|
2026-06-16 10:04:24 +02:00 |
|
aferrer
|
18a192a069
|
chore: apply Biome cleanup
|
2026-06-11 04:56:01 +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 |
|