Skip to content

Commit e8bae03

Browse files
committed
verify if this is caused by Jest's mock implementation
1 parent 4dcdc39 commit e8bae03

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

packages/neovim/src/attach/attach.test.ts

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -154,27 +154,22 @@ describe('Nvim API', () => {
154154
expect(newLines).toEqual(['line1', 'line2']);
155155
});
156156

157-
it('emits "disconnect" after quit', async () => {
158-
const disconnectMock = jest.fn();
159-
nvim.on('disconnect', disconnectMock);
160-
nvim.quit();
161-
162-
const closePromise = new Promise(resolve => {
163-
proc.on('close', resolve);
157+
it('emits "disconnect" after quit', done => {
158+
let disconnectCalled = false;
159+
nvim.on('disconnect', () => {
160+
disconnectCalled = true;
164161
});
165162

166-
let timeout: NodeJS.Timeout;
163+
nvim.quit();
167164

168-
await Promise.race([
169-
closePromise.then(() => clearTimeout(timeout)),
170-
new Promise((_, reject) => {
171-
timeout = setTimeout(
172-
() => reject(new Error('Timeout waiting for nvim to quit')),
173-
5000
174-
);
175-
}),
176-
]);
165+
proc.on('close', () => {
166+
expect(disconnectCalled).toBe(true);
167+
done();
168+
});
177169

178-
expect(disconnectMock).toHaveBeenCalledTimes(1);
179-
}, 10000);
170+
// Event doesn't actually emit when we quit nvim, but when the child process is killed
171+
if (proc && proc.connected) {
172+
proc.disconnect();
173+
}
174+
});
180175
});

0 commit comments

Comments
 (0)