From 8cf12d0c1b97977c99bddd47c5d700834fa01bff Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Fri, 11 Oct 2024 12:55:25 +0200 Subject: [PATCH] test: proc.on('close') event --- packages/neovim/package.json | 2 +- packages/neovim/src/attach/attach.test.ts | 26 ++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/neovim/package.json b/packages/neovim/package.json index e498d706..15d535eb 100644 --- a/packages/neovim/package.json +++ b/packages/neovim/package.json @@ -91,7 +91,7 @@ "/src/testSetup.ts" ], "testEnvironment": "node", - "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.ts$", + "testRegex": "(/__tests__/.*|attach(\\.|/)(test|spec))\\.ts$", "coverageDirectory": "./coverage/", "collectCoverage": true, "coverageReporters": [ diff --git a/packages/neovim/src/attach/attach.test.ts b/packages/neovim/src/attach/attach.test.ts index 70d16597..4f0c6942 100644 --- a/packages/neovim/src/attach/attach.test.ts +++ b/packages/neovim/src/attach/attach.test.ts @@ -154,14 +154,38 @@ describe('Nvim API', () => { expect(newLines).toEqual(['line1', 'line2']); }); - it('emits "disconnect" after quit', done => { + it.only('emits "disconnect" after quit', done => { const disconnectMock = jest.fn(); nvim.on('disconnect', disconnectMock); nvim.quit(); + const r = { + stdoutClosed: false, + stderrClosed: false, + errors: 0, + }; + proc.stdout.on('close', () => { + r.stdoutClosed = true; + }); + proc.stderr.on('close', () => { + r.stderrClosed = true; + }); + proc.on('error', () => { + r.errors = r.errors + 1; + }); + // TODO: 'close' event sometimes does not emit. #414 proc.on('exit', () => { + expect(r).toStrictEqual({ + stdoutClosed: true, + stderrClosed: true, + errors: 0, + }); + done(); + }); + + proc.on('close', () => { expect(disconnectMock).toHaveBeenCalledTimes(1); done(); });