diff --git a/test/templates/util/aspnet.ts b/test/templates/util/aspnet.ts index 11d75ae..d320fc2 100644 --- a/test/templates/util/aspnet.ts +++ b/test/templates/util/aspnet.ts @@ -5,6 +5,7 @@ import { waitUntilPortState } from './ports'; const treeKill = require('tree-kill'); const crossSpawn: typeof childProcess.spawn = require('cross-spawn'); const defaultPort = 5000; +const defaultInterface = 'localhost'; export const defaultUrl = `http://localhost:${ defaultPort }`; @@ -99,7 +100,7 @@ export class AspNetProcess { // any outstanding requests. We have to wait for it really to be gone before continuing, otherwise // the next test might be unable to start because of the port still being in use. console.log(`Waiting until port ${ defaultPort } is closed...`); - waitUntilPortState(defaultPort, /* isOpen */ true, /* timeoutMs */ 15000, err => { + waitUntilPortState(defaultPort, defaultInterface, /* isListening */ false, /* timeoutMs */ 15000, err => { if (err) { callback(err); } else { diff --git a/test/templates/util/ports.ts b/test/templates/util/ports.ts index 5a124d6..197ebab 100644 --- a/test/templates/util/ports.ts +++ b/test/templates/util/ports.ts @@ -1,20 +1,21 @@ import * as portastic from 'portastic'; const pollInterval = 500; -export function waitUntilPortState(port: number, isOpen: boolean, timeoutMs: number, callback: (err: any) => void) { +export function waitUntilPortState(port: number, iface: string, isListening: boolean, timeoutMs: number, callback: (err: any) => void) { if (!(timeoutMs > 0)) { - throw new Error(`Timed out after ${ timeoutMs }ms waiting for port ${ port } to become ${ isOpen ? 'free' : 'in use' }`); + throw new Error(`Timed out waiting for port ${ port } to become ${ isListening ? 'in use' : 'free' }`); } - portastic.test(port).then( - actualIsOpenState => { - if (actualIsOpenState === isOpen) { + portastic.test(port, iface).then( + actuallyIsAvailable => { + const actuallyIsListening = !actuallyIsAvailable; + if (actuallyIsListening === isListening) { // Desired state is reached callback(null); } else { // Wait longer setTimeout(() => { - waitUntilPortState(port, isOpen, timeoutMs - pollInterval, callback); + waitUntilPortState(port, iface, isListening, timeoutMs - pollInterval, callback); }, pollInterval); } },