expect(received).toStrictEqual(expected) // deep equality
- Expected - 1
+ Received + 1
Object {
"errors": 0,
- "stderrClosed": true,
+ "stderrClosed": false,
"stdoutClosed": true,
}
172 | // TODO: 'close' event sometimes does not emit. #414
173 | proc.on('exit', () => {
> 174 | expect(r).toStrictEqual({
| ^
175 | stdoutClosed: true,
176 | stderrClosed: true,
177 | errors: 0,
at ChildProcess.toStrictEqual (src/attach/attach.test.ts:174:17)
This is a tracking issue for a potential issue noticed in #414 (comment)
Problem
proc.on('close')does not always trigger onnvim.quit(). Based on the failures demonstrated in #418, it appears that sometimes the child (nvim) does not close the stderr pipe:Solution
proc.on('close')is unreliable.proc.on('exit')as a workaround.fclose(stderr)does not pass the tests in this PR. Nor does addingfclose(stderr)anywhere else AFAICT.