test: use polling for more stable markdown e2e tests

close #1908
This commit is contained in:
Evan You
2020-08-20 10:51:25 -04:00
parent d4cc7b2496
commit a74f8d7891
2 changed files with 25 additions and 3 deletions

View File

@@ -6,6 +6,24 @@ const puppeteerOptions = process.env.CI
? { args: ['--no-sandbox', '--disable-setuid-sandbox'] }
: {}
const maxTries = 20
export const timeout = (n: number) => new Promise(r => setTimeout(r, n))
export async function expectByPolling(
poll: () => Promise<any>,
expected: string
) {
for (let tries = 0; tries < maxTries; tries++) {
const actual = (await poll()) || ''
if (actual.indexOf(expected) > -1 || tries === maxTries - 1) {
expect(actual).toMatch(expected)
break
} else {
await timeout(50)
}
}
}
export function setupPuppeteer() {
let browser: puppeteer.Browser
let page: puppeteer.Page