Fix some integration test flakiness

This commit is contained in:
Max Brunsfeld
2015-05-06 10:29:34 -07:00
parent 8e8e827388
commit 75289ee3dd
2 changed files with 21 additions and 9 deletions

View File

@@ -15,15 +15,23 @@ ChromedriverPort = 9515
ChromedriverURLBase = "/wd/hub"
ChromedriverStatusURL = "http://localhost:#{ChromedriverPort}#{ChromedriverURLBase}/status"
pollChromeDriver = (done) ->
chromeDriverUp = (done) ->
checkStatus = ->
http.get(ChromedriverStatusURL, (response) ->
if response.statusCode is 200
done()
else
pollChromeDriver(done)
).on("error", -> pollChromeDriver(done))
http
.get ChromedriverStatusURL, (response) ->
if response.statusCode is 200
done()
else
chromeDriverUp(done)
.on("error", -> chromeDriverUp(done))
setTimeout(checkStatus, 100)
chromeDriverDown = (done) ->
checkStatus = ->
http
.get ChromedriverStatusURL, (response) ->
chromeDriverDown(done)
.on("error", done)
setTimeout(checkStatus, 100)
buildAtomClient = (args, env) ->
@@ -137,9 +145,9 @@ module.exports = (args, env, fn) ->
chromedriver.stderr.on "close", ->
resolve(errorCode)
waitsFor("webdriver to start", pollChromeDriver, 15000)
waitsFor("webdriver to start", chromeDriverUp, 15000)
waitsFor("webdriver to finish", (done) ->
waitsFor("tests to run", (done) ->
finish = once ->
client
.simulateQuit()
@@ -162,3 +170,5 @@ module.exports = (args, env, fn) ->
fn(client.init()).then(finish)
, 30000)
waitsFor("webdriver to stop", chromeDriverDown, 15000)

View File

@@ -150,10 +150,12 @@ describe "Starting Atom", ->
.waitForWindowCount(2, 10000)
.then ({value: windowHandles}) ->
@window(windowHandles[0])
.waitForExist("atom-workspace")
.treeViewRootDirectories()
.then ({value: directories}) -> windowProjectPaths.push(directories)
.window(windowHandles[1])
.waitForExist("atom-workspace")
.treeViewRootDirectories()
.then ({value: directories}) -> windowProjectPaths.push(directories)