From d6cbcb5eecc0bde98e171e1e6d7ccbfb3c4eedac Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Mon, 28 Oct 2019 09:02:44 -0400 Subject: [PATCH] Fixes failing terminal test --- .../src/singlefolder-tests/terminal.test.ts | 72 +++++++++++-------- 1 file changed, 43 insertions(+), 29 deletions(-) diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts index 7138319d459..d1191614b57 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts @@ -175,6 +175,7 @@ suite('window namespace tests', () => { const reg1 = window.onDidOpenTerminal(e => openEvents.push(e.name)); let resolveOnceDataWritten: (() => void) | undefined; + let resolveOnceClosed: (() => void) | undefined; const reg2 = window.onDidWriteTerminalData(e => { dataEvents.push({ name: e.terminal.name, data: e.data }); @@ -189,48 +190,61 @@ suite('window namespace tests', () => { deepEqual(openEvents, ['test1']); deepEqual(dataEvents, [{ name: 'test1', data: 'write1' }]); deepEqual(closeEvents, ['test1']); + resolveOnceClosed!(); } else if (closeEvents.length === 2) { deepEqual(openEvents, ['test1', 'test2']); deepEqual(dataEvents, [{ name: 'test1', data: 'write1' }, { name: 'test2', data: 'write2' }]); deepEqual(closeEvents, ['test1', 'test2']); - - reg1.dispose(); - reg2.dispose(); - reg3.dispose(); - done(); + resolveOnceClosed!(); } }); const term1Write = new EventEmitter(); const term1Close = new EventEmitter(); - window.createTerminal({ name: 'test1', pty: { - onDidWrite: term1Write.event, - onDidClose: term1Close.event, - open: async () => { - term1Write.fire('write1'); + window.createTerminal({ + name: 'test1', pty: { + onDidWrite: term1Write.event, + onDidClose: term1Close.event, + open: async () => { + term1Write.fire('write1'); - // Wait until the data is written - await new Promise(resolve => { resolveOnceDataWritten = resolve; }); - term1Close.fire(); + // Wait until the data is written + await new Promise(resolve => { resolveOnceDataWritten = resolve; }); - const term2Write = new EventEmitter(); - const term2Close = new EventEmitter(); - window.createTerminal({ name: 'test2', pty: { - onDidWrite: term2Write.event, - onDidClose: term2Close.event, - open: async () => { - term2Write.fire('write2'); + term1Close.fire(); - // Wait until the data is written - await new Promise(resolve => { resolveOnceDataWritten = resolve; }); + // Wait until the terminal is closed + await new Promise(resolve => { resolveOnceClosed = resolve; }); - term2Close.fire(); - }, - close: () => { } - }}); - }, - close: () => { } - }}); + const term2Write = new EventEmitter(); + const term2Close = new EventEmitter(); + window.createTerminal({ + name: 'test2', pty: { + onDidWrite: term2Write.event, + onDidClose: term2Close.event, + open: async () => { + term2Write.fire('write2'); + + // Wait until the data is written + await new Promise(resolve => { resolveOnceDataWritten = resolve; }); + + term2Close.fire(); + + // Wait until the terminal is closed + await new Promise(resolve => { resolveOnceClosed = resolve; }); + + reg1.dispose(); + reg2.dispose(); + reg3.dispose(); + done(); + }, + close: () => { } + } + }); + }, + close: () => { } + } + }); }); });