Wait for reused window's project paths to update in main process test

Signed-off-by: Nathan Sobo <nathan@github.com>
This commit is contained in:
Max Brunsfeld 2016-09-20 16:52:47 -07:00 committed by Nathan Sobo
parent 833b3b0ab0
commit d1a4fd2378
2 changed files with 14 additions and 17 deletions

View File

@ -29,23 +29,20 @@ export function afterEach (fn) {
}
})
export function conditionPromise (condition) {
const timeoutError = new Error("Timed out waiting on condition")
Error.captureStackTrace(timeoutError, conditionPromise)
export async function conditionPromise (condition) {
const startTime = Date.now()
return new Promise(function (resolve, reject) {
const interval = global.setInterval(function () {
if (condition()) {
global.clearInterval(interval)
global.clearTimeout(timeout)
resolve()
}
}, 100)
const timeout = global.setTimeout(function () {
global.clearInterval(interval)
reject(timeoutError)
}, 5000)
})
while (true) {
await timeoutPromise(100)
if (await condition()) {
return
}
if (Date.now() - startTime > 5000) {
throw new Error("Timed out waiting on condition")
}
}
}
export function timeoutPromise (timeout) {

View File

@ -246,7 +246,7 @@ describe('AtomApplication', function () {
const reusedWindow = atomApplication.launch(parseCommandLine([tempDirPath]))
assert.equal(reusedWindow, window1)
assert.deepEqual(await getTreeViewRootDirectories(window1), [tempDirPath])
await conditionPromise(async () => (await getTreeViewRootDirectories(reusedWindow)).length > 0)
})
it('opens a new window with a single untitled buffer when launched with no path, even if windows already exist', async function () {