Skip to content

feat(chat): lista "Mis bloqueos" + tests unitarios de cliente (I-F-N07-04-02) - #324

Merged
Piedra-1988 merged 1 commit into
developfrom
task/n07-04-02-blocks-followup
Aug 6, 2026
Merged

feat(chat): lista "Mis bloqueos" + tests unitarios de cliente (I-F-N07-04-02)#324
Piedra-1988 merged 1 commit into
developfrom
task/n07-04-02-blocks-followup

Conversation

@Piedra-1988

Copy link
Copy Markdown
Collaborator

Contexto

Cierra el alcance de cliente que quedó pendiente de la task #288 (bloqueo de usuarios), detectado en la revisión: faltaban los tests unitarios de cliente y la lista "Mis bloqueos". Solo cambios de cliente — sin migración/RLS/tipos nuevos.

Cambios

Lista "Mis bloqueos" (móvil)

  • lib/blocks.tslistMyBlocks(): lee mis filas de user_blocks (orden created_at desc) y resuelve nombre/avatar vía profiles_public (sin exponer email). Sin migración: profiles_select_authenticated ya permite leer perfiles.
  • hooks/useMyBlocks.ts → estado { blocks, loading, error }, refresh() y unblock(userId) optimista con reversión en error (snapshot vía ref).
  • app/(app)/(tabs)/perfil/bloqueos.tsxFlatList (avatar + nombre + "Desbloquear" con confirmación), pull-to-refresh y estado vacío.
  • app/(app)/(tabs)/perfil/index.tsx → acceso "Usuarios bloqueados" (autoservicio, todos los roles).

Tests unitarios de cliente

  • __tests__/lib/blocks.test.ts (10): blockUser / unblockUser / getBlockState / listMyBlocks, incl. errores y "me bloquearon a mí".
  • __tests__/hooks/useMyBlocks.test.ts (4): carga, error, unblock optimista y reversión.

De paso se corrige un bug de timing en el unblock optimista: capturar el snapshot dentro del updater de setState no es fiable (puede correr tras el catch) → ref que espeja el estado.

Verificación

  • npx tsc --noEmit ✅ limpio
  • npx eslint (archivos tocados) ✅ limpio
  • npx jest (blocks + useMyBlocks + chat + useChat) ✅ 32/32

Fuera de alcance

UI admin web (repo solo Expo).

Closes #288

🤖 Generated with Claude Code

…7-04-02)

Cierra el alcance de cliente pendiente de #288:

- lib/blocks.ts: listMyBlocks() lee mis bloqueos y resuelve nombre/avatar
  vía profiles_public (sin email). Sin migración: profiles_select_authenticated
  ya permite leer perfiles.
- hooks/useMyBlocks.ts: estado + refresh + unblock optimista (revierte en error).
- app/(app)/(tabs)/perfil/bloqueos.tsx: pantalla con FlatList, desbloquear con
  confirmación, pull-to-refresh y estado vacío.
- perfil/index.tsx: acceso "Usuarios bloqueados" (autoservicio, todos los roles).

Tests de cliente (el hueco de la review):
- __tests__/lib/blocks.test.ts (blockUser/unblockUser/getBlockState/listMyBlocks).
- __tests__/hooks/useMyBlocks.test.ts (carga/error/unblock optimista y reversión).

tsc + eslint limpios; jest 32/32.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Piedra-1988
Piedra-1988 requested a review from Azfe as a code owner August 6, 2026 16:51
@supabase

supabase Bot commented Aug 6, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project bsiafugrpftsoonqomox because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@Piedra-1988

Copy link
Copy Markdown
Collaborator Author

feat(chat): lista "Mis bloqueos" + tests unitarios de cliente (I-F-N07-04-02)

Cierra el alcance de cliente pendiente de #288:

  • lib/blocks.ts: listMyBlocks() lee mis bloqueos y resuelve nombre/avatar
    vía profiles_public (sin email). Sin migración: profiles_select_authenticated
    ya permite leer perfiles.
  • hooks/useMyBlocks.ts: estado + refresh + unblock optimista (revierte en error).
  • app/(app)/(tabs)/perfil/bloqueos.tsx: pantalla con FlatList, desbloquear con
    confirmación, pull-to-refresh y estado vacío.
  • perfil/index.tsx: acceso "Usuarios bloqueados" (autoservicio, todos los roles).

Tests de cliente (el hueco de la review):

  • tests/lib/blocks.test.ts (blockUser/unblockUser/getBlockState/listMyBlocks).
  • tests/hooks/useMyBlocks.test.ts (carga/error/unblock optimista y reversión).

tsc + eslint limpios; jest 32/32.

@Piedra-1988
Piedra-1988 merged commit 3d69ee7 into develop Aug 6, 2026
15 of 19 checks passed
@Piedra-1988
Piedra-1988 deleted the task/n07-04-02-blocks-followup branch August 6, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant