Add tests for board rendering, drag and drop, and settings toggles
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript
- Área
- testing
Línea de trabajo
Start with tests/ and the existing test setup, then read the referenced sections of js/utils.js, js/board.js, js/drag.js, and js/main.js. Run npm test and npm run lint to see current conventions and coverage. Add tests for each listed behavior and make the drag handlers importable; done when the acceptance criteria pass.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Drag and drop is the default input method and the most recently changed area, yet it has no automated check. js/drag.js has no CommonJS export and js/main.js is a single DOMContentLoaded handler, so neither can be loaded by the current tests.
Where
js/drag.js:285-288(onlywindow.initDragAndDropis exposed),js/drag.js:186-283js/main.js:7-80js/board.js:13,js/board.js:39,js/board.js:99,js/board.js:153js/utils.js:10-27,js/utils.js:60-82
Suggested fix
-
utils:algebraicToCoordsreturnsnullfor'i1','a9','a0','',null,'e44'and accepts'E4';coordsToAlgebraic(8,0)and(-1,0)returnnull;isWithinBoundsat 0, 7, -1, 8 -
deepClone: a nested board clone is independent of the source -
board:createBoardmakes 64 squares withdata-rowanddata-col;renderPiecesplaces 32 pieces at the start;updateBoardVisualsmarks the selected square, the possible moves and the king in check -
handleBoardClickEvent: a click on a piece inside a square selects it; it is ignored whilewindow.dragJustEndedis true -
drag: export the handlers for tests; mousedown, mousemove, mouseup over a legal square callsmakeMoveonce; a drop on an illegal square or outside the board leaves the position unchanged and clears the selection; mousedown without movement falls through to click selection (#23) -
main: toggles read and write their storage keys with the documented defaults - Optional: one browser smoke test, since jsdom has no layout for
elementsFromPoint
Acceptance criteria
-
drag.jshandlers are importable in tests - Each item above has a test
Getting started
- Relevant files:
js/drag.js,js/board.js,js/main.js,js/utils.js,tests/ - How to run tests:
npm install, thennpm testandnpm run lint - Related docs:
docs/ARCHITECTURE.md,.github/CONTRIBUTING.md
Filed by repo-audit/full-audit at 8a2c86c. Severity: low. Effort: M. audit-key: testing|js/drag.js|handleDragEnd
- Lenguaje dominante
- JavaScript
- Estrellas
- 4
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TMHSDigital/Static_Chess
-
enhancement good first issue severity: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
TMHSDigital/Static_Chess#53 ·
-
documentation good first issue severity: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
TMHSDigital/Static_Chess#49 ·
-
documentation good first issue severity: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
TMHSDigital/Static_Chess#48 ·
-
documentation severity: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
TMHSDigital/Static_Chess#47 ·
-
documentation good first issue severity: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
TMHSDigital/Static_Chess#46 ·
Todos los issues de TMHSDigital/Static_Chess
Issues similares
-
good first issue tests
Dificultad 1/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Download a leaderboard as CSVAbiertoenhancement good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
-
1️⃣ phase/under-investigation flaky/confirmed flaky/needs-decision type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
growilabs/growi#12246 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
TMHSDigital/Free-Game-Dev-Assets#301 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100