Duplicate test.done() breaks nodeunit internals
- Lenguaje dominante
- JavaScript
- Estrellas
- 1.9k
- Forks
- 359
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
test.js (there's no smaller repro than this!):
``` javascript
exports.duplicateDoneBreaksNodeUnit = function(test) {
test.done();
test.done();
};
```
output:
```
[1m[32mOK: [39m[22m0 assertions (105ms)
...\project\node_modules\nodeunit\lib\core.js:284
if (group.setUp) {
^
TypeError: Cannot read property 'setUp' of undefined
at wrapGroup (...\project\node_modules\nodeunit\lib\core.js:284:14)
at Object.exports.runSuite (...\project\node_modules\nodeunit\lib\core.js:92:13)
at exports.runSuite (...\project\node_modules\nodeunit\lib\core.js:124:21)
at _concat (...\project\node_modules\nodeunit\deps\async.js:513:13)
at async.forEachSeries.iterate (...\project\node_modules\nodeunit\deps\async.js:123:13)
at async.forEachSeries.iterate (...\project\node_modules\nodeunit\deps\async.js:134:25)
at _concat (...\project\node_modules\nodeunit\deps\async.js:515:17)
at exports.test.test.done (...\project\node_modules\nodeunit\lib\types.js:146:17)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
```
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Reproduce el problema con el ejemplo test.js y, después, inspecciona test.done en lib/types.js y la ruta wrapGroup en lib/core.js, especialmente las ubicaciones del stack-trace. Sigue qué hace la segunda finalización y añade o actualiza una prueba de regresión; el trabajo estará terminado cuando un test.done() duplicado ya no provoque el fallo de los componentes internos de nodeunit.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, node.js
- Área
- testing-qa
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100