Skip to content

chore(widget): tests de la retención tras reordenar (#241) - #242

Merged
egdev6 merged 3 commits into
egdev6:mainfrom
DonatoSilva:chore/241-reorder-hold-tests
Nov 6, 2026
Merged

egdev6 merged 3 commits into
egdev6:mainfrom
DonatoSilva:chore/241-reorder-hold-tests

Conversation

@DonatoSilva

Copy link
Copy Markdown
Contributor

Related issue / Issue relacionada

Issue: Closes #241
ODD: odd/tasks/241-reorder-hold-tests.md — alcance aprobado por el mantenedor en la propia issue (status:approved, type:chore).

Scope / Alcance

Los tests de la retención tras reordenar (#240) no fijaban comportamiento: holdAfterReorderDrop, releaseOnStripLeave y canPointerOpen envolvían un booleano, y sus tests comprobaban la aridad o que el estado del panel no cambiara. La comprobación con bordes reales —si el puntero cayó dentro de la ventana al soltar un reordenado— estaba en línea en Widget.tsx y no tenía test.

Dos commits: el refactor con sus tests y el ODD, y el inventario i18n regenerado (solo cambia la línea de hashes del árbol de src/).

Coordination / Coordinación

  • Para ODD: asignaciones y solapamientos revisados; toma verificada o acuerdo explícito del mantenedor enlazado.

Contributor / Contribuidor: @DonatoSilva
Claim or agreement evidence / Evidencia de asignación o acuerdo: asignación del mantenedor en la issue (#241), con status:approved y type:chore.

Acceptance and validation / Aceptación y validación

  • Criteria satisfied / Criterios cumplidos: la retención sigue activa solo si el puntero quedó dentro de la ventana al soltar un reordenado; se libera con el mouseleave de la tira; la guarda aplica solo a la vía del puntero; la función pura cubre los bordes en ambos ejes; sin cambio de comportamiento respecto de fix(widget): el detalle no se reabre solo al soltar un orbe reordenado (#222) #240.
  • Checks actually run and results / Comprobaciones ejecutadas y resultados:
    • Tests nuevos observados en rojo antes de implementar (el módulo todavía no existía) y en verde después.
    • npm test: vitest 69 archivos / 910 tests; node --test 298; 0 fallos.
    • npm run typecheck y npm run build: sin errores.
    • node scripts/i18n-inventory.mjs --check: correcto.
  • Checks not run and why / Comprobaciones no ejecutadas y motivo: cargo test no aplica: el cambio es solo de TypeScript en src/ y no toca src-tauri/. No hubo prueba manual en GUI porque el comportamiento no cambia: las funciones borradas eran identidades y el predicado extraído reproduce la misma comparación.
  • Remaining blockers / Bloqueos pendientes: ninguno.

An open PR does not mean integration. Release, secrets and signing operations require separate authorization.
Una PR abierta no implica integración. Release, secretos y firma requieren autorización separada.

@egdev6 egdev6 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Muy buen trabajo, el cambio cumple todo lo que pide #241: las tres envoltorio y sus tests fuera, la retención como useRef<boolean> con sus cuatro usos equivalentes, y pointerInsideViewport con los bordes de ambos ejes cubiertos. Antes de aprobar, te pido dos ajustes pequeños:

  1. Conservar el motivo del borde. El JSDoc que se borra de holdAfterReorderDrop explicaba por qué no se retiene al soltar fuera de la ventana: el mouseleave ya ocurrió y nada liberaría la retención después. Es justo la razón por la que < frente a <= importa, y hoy ya no aparece en ningún sitio. Basta con una línea en el JSDoc de src/lib/pointer-viewport.ts o junto al pointerup en src/Widget.tsx.
  2. Actualizar el documento ODD. En odd/tasks/241-reorder-hold-tests.md, la estrategia de entrega dice «Dos commits», pero el PR tiene tres (el tercero registra la entrega).

Con eso lo apruebo. La etiqueta y la asignación las pongo yo.

@DonatoSilva
DonatoSilva force-pushed the chore/241-reorder-hold-tests branch from 3fbe2c1 to a804fd7 Compare November 6, 2026 21:17
@DonatoSilva

Copy link
Copy Markdown
Contributor Author

Buenos dias, tardes o noches. Corregidos los puntos solicitados en el a804fd7. La rama esta rebasada sobre main asi que el pr ya no tiene conflicto

@egdev6 egdev6 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gracias, @DonatoSilva. Los dos ajustes están resueltos en a804fd7: el motivo del borde vive ahora en el JSDoc de pointerInsideViewport, y el documento ODD declara los tres commits con sus hashes. La rama está sobre main actual y los cinco checks pasan. Aprobada.

@egdev6 egdev6 added the type:chore Maintenance, release infrastructure and tooling label Nov 6, 2026
@egdev6
egdev6 merged commit 79ee3cd into egdev6:main Nov 6, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:chore Maintenance, release infrastructure and tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(widget): tests de la retención tras reordenar (#240)

2 participants