Repository navigation
chore(widget): tests de la retención tras reordenar (#241) - #242
Open
DonatoSilva wants to merge 3 commits into
Open
DonatoSilva wants to merge 3 commits into
DonatoSilva wants to merge 3 commits into
Conversation
Las tres funciones de la retención (`holdAfterReorderDrop`, `releaseOnStripLeave` y `canPointerOpen`) envolvían un booleano, así que sus tests no podían fallar: comprobaban la aridad y que el estado del panel no cambiara. La lógica con bordes reales —si el puntero cayó dentro de la ventana al soltar un reordenado— estaba en línea y no tenía test. - `pointerInsideViewport(x, y, width, height)` pasa a `src/lib/pointer-viewport.ts` como función pura, con los bordes cubiertos en ambos ejes (`0`, `-1`, `width - 1` y `width`). - La retención queda como `useRef<boolean>` en `Widget.tsx`, sin envoltorio. - Se borran las tres funciones y el bloque de tests que no fijaba comportamiento. Sin cambio de comportamiento: mismas condiciones de retención y liberación que egdev6#240. La guarda sigue solo en la vía del puntero; el foco y el clic no la consultan. Refs egdev6#241
Solo cambia la línea de hashes del árbol de src/: el cambio no añade ni modifica textos de interfaz.
Anota en la tarea los commits de cada fase, la PR y las comprobaciones ejecutadas.
egdev6
requested changes
Nov 6, 2026
egdev6
left a comment
Owner
There was a problem hiding this comment.
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:
- Conservar el motivo del borde. El JSDoc que se borra de
holdAfterReorderDropexplicaba por qué no se retiene al soltar fuera de la ventana: elmouseleaveya 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 desrc/lib/pointer-viewport.tso junto alpointerupensrc/Widget.tsx. - 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.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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,releaseOnStripLeaveycanPointerOpenenvolví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 enWidget.tsxy no tenía test.pointerInsideViewport(x, y, width, height)ensrc/lib/pointer-viewport.ts, con los bordes cubiertos en ambos ejes (0,-1,width - 1ywidth).useRef<boolean>enWidget.tsx, sin envoltorio; se borran las tres funciones y el aliasReorderHold.onPointerEnter); el foco y el clic no la consultan.REORDER_GUARD_MS), ni el cableado de foco y clic. Se mantiene el test deProviderGaugesobre el enrutado demouseenteraonPointerEnter.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
Contributor / Contribuidor: @DonatoSilva
Claim or agreement evidence / Evidencia de asignación o acuerdo: asignación del mantenedor en la issue (#241), con
status:approvedytype:chore.Acceptance and validation / Aceptación y validación
mouseleavede 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.npm test: vitest 69 archivos / 910 tests;node --test298; 0 fallos.npm run typecheckynpm run build: sin errores.node scripts/i18n-inventory.mjs --check: correcto.cargo testno aplica: el cambio es solo de TypeScript ensrc/y no tocasrc-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.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.