1.4 KiB
1.4 KiB
F-154 — Acceptance Criteria
AC1 — Customers list shows only storefront customers
GET /users (admin) devuelve SOLO usuarios con role = 'customer'. Un usuario
interno (admin/editor) NO aparece en el listado. El buscador q sigue filtrando sobre email
dentro de los clientes.
AC2 — Users list shows only internal/backoffice users
GET /admin/users (admin, default sin ?role=) devuelve SOLO usuarios con
role != 'customer' (admin/editor/pos). Un cliente (role = 'customer') NO aparece.
?role=admin y ?role=editor siguen afinando dentro de internos; ?role=customer
NO devuelve clientes (devuelve vacío) — la separación está forzada en backend.
AC3 — No regression on user profile / addresses
/users/:id (GET/PATCH) owner-or-admin sigue devolviendo/editando CUALQUIER usuario
sin filtro por rol (admin ve perfil de cliente; cliente ve el suyo). CRUD de
/users/:id/addresses inalterado.
AC4 — No boundary / injection violation
identity_usersreferenciado solo como tabla SQL (sin import TS).- Valores
q/roleparametrizados; el literal'customer'/'customer'es constante de código. - Sin migración.
AC5 — Quality gates
tsc --noEmit(API) 0 errores;npx tsc --noEmit(apps/admin) sin errores nuevos.npm run lint:boundariessin violaciones nuevas.vitest run(sin DB) → suite nueva F-154 + suite existente en verde.verify.shexit 0 (backlog F-154 in_progress, runtime stage válido).