diff --git a/web/packages/teleterm/src/mainProcess/resolveNetworkAddress.test.ts b/web/packages/teleterm/src/mainProcess/resolveNetworkAddress.test.ts index ff151d94ecd53..17df757375a8e 100644 --- a/web/packages/teleterm/src/mainProcess/resolveNetworkAddress.test.ts +++ b/web/packages/teleterm/src/mainProcess/resolveNetworkAddress.test.ts @@ -19,11 +19,11 @@ import path from 'path'; import { resolveNetworkAddress } from './resolveNetworkAddress'; -// Hardcoded in testProcess.js. +// Hardcoded in testProcess.mjs. const PORT = '1337'; it('returns an error when supplied an unknown protocol', async () => { - const process = fork(path.join(__dirname, 'testProcess.js'), { + const process = fork(path.join(__dirname, 'testProcess.mjs'), { silent: true, }); @@ -56,7 +56,7 @@ describe.each(testSuites)( 'for $name process', ({ requestedAddress, expectedNetworkAddress }) => { it(`waits for the process to output the matching string`, async () => { - const process = fork(path.join(__dirname, 'testProcess.js'), { + const process = fork(path.join(__dirname, 'testProcess.mjs'), { silent: true, }); @@ -73,7 +73,7 @@ describe.each(testSuites)( }); it(`times out if the process doesn't return the match in time`, async () => { - const process = fork(path.join(__dirname, 'testProcess.js'), ['100'], { + const process = fork(path.join(__dirname, 'testProcess.mjs'), ['100'], { silent: true, }); @@ -88,7 +88,7 @@ describe.each(testSuites)( it(`returns an error if the process exits without returning a match`, async () => { const process = fork( - path.join(__dirname, 'testProcess.js'), + path.join(__dirname, 'testProcess.mjs'), ['10', 'exit-prematurely'], { silent: true, diff --git a/web/packages/teleterm/src/mainProcess/resolveNetworkAddress.ts b/web/packages/teleterm/src/mainProcess/resolveNetworkAddress.ts index 73bb5f617e1b7..db4c806fd7972 100644 --- a/web/packages/teleterm/src/mainProcess/resolveNetworkAddress.ts +++ b/web/packages/teleterm/src/mainProcess/resolveNetworkAddress.ts @@ -99,7 +99,8 @@ function waitForMatchInStdout( const rejectOnExit = (code: number, signal: NodeJS.Signals) => { const codeOrSignal = [ - code && `code ${code}`, + // code can be 0, so we cannot just check it the same way as the signal. + code != null && `code ${code}`, signal && `signal ${signal}`, ] .filter(Boolean) diff --git a/web/packages/teleterm/src/mainProcess/testProcess.js b/web/packages/teleterm/src/mainProcess/testProcess.js deleted file mode 100644 index ae3ead2efb9b0..0000000000000 --- a/web/packages/teleterm/src/mainProcess/testProcess.js +++ /dev/null @@ -1,19 +0,0 @@ -const process = require('process'); - -const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); - -(async () => { - const waitTime = parseInt(process.argv[2]); - if (waitTime) { - await sleep(waitTime); - } - - const shouldExit = process.argv[3]; - if (shouldExit) { - process.exit(1); - } - - console.log('Lorem ipsum dolor sit amet'); - console.log('{CONNECT_GRPC_PORT: 1337}'); - console.log('Lorem ipsum dolor sit amet'); -})(); diff --git a/web/packages/teleterm/src/mainProcess/testProcess.mjs b/web/packages/teleterm/src/mainProcess/testProcess.mjs new file mode 100644 index 0000000000000..bb8b540a5df8c --- /dev/null +++ b/web/packages/teleterm/src/mainProcess/testProcess.mjs @@ -0,0 +1,33 @@ +/** + * Copyright 2023 Gravitational, Inc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import process from 'process'; + +const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); + +const waitTime = parseInt(process.argv[2]); +if (waitTime) { + await sleep(waitTime); +} + +const shouldExit = process.argv[3]; +if (shouldExit) { + process.exit(1); +} + +console.log('Lorem ipsum dolor sit amet'); +console.log('{CONNECT_GRPC_PORT: 1337}'); +console.log('Lorem ipsum dolor sit amet');