tests: try to make tests less flaky (#1292)

This commit is contained in:
Nolan Lawson 2019-06-22 13:21:19 -07:00 committed by GitHub
parent c034b4c0c5
commit ea220c32d3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 13 deletions

View file

@ -129,31 +129,27 @@ test('delete and redraft reply within thread', async t => {
.expect(getNthStatusContent(1).innerText).contains('this is a thread') .expect(getNthStatusContent(1).innerText).contains('this is a thread')
.click(getNthStatus(1)) .click(getNthStatus(1))
.expect(getUrl()).match(/statuses/) .expect(getUrl()).match(/statuses/)
await sleep(1000)
await t await t
.expect(getNthStatusContent(1).innerText).contains('this is a thread') .expect(getNthStatusContent(1).innerText).contains('this is a thread', { timeout: 30000 })
.click(getNthReplyButton(1)) .click(getNthReplyButton(1))
await sleep(1000) await sleep(2000)
await t await t
.typeText(getNthComposeReplyInput(1), 'heyo', { paste: true }) .typeText(getNthComposeReplyInput(1), 'heyo', { paste: true })
.click(getNthComposeReplyButton(1)) .click(getNthComposeReplyButton(1))
await sleep(1000)
await t await t
.expect(getNthStatus(2).innerText).contains('@admin heyo') .expect(getNthStatus(2).innerText).contains('@admin heyo', { timeout: 30000 })
.click(getNthStatusOptionsButton(2)) .click(getNthStatusOptionsButton(2))
await sleep(500) await sleep(2000)
await t await t
.click(dialogOptionsOption.withText('Delete and redraft')) .click(dialogOptionsOption.withText('Delete and redraft'))
await sleep(500)
await t await t
.expect(modalDialog.hasAttribute('aria-hidden')).notOk() .expect(modalDialog.hasAttribute('aria-hidden')).notOk({ timeout: 30000 })
.typeText(composeModalInput, ' update!', { paste: true }) .typeText(composeModalInput, ' update!', { paste: true })
await sleep(1000) await sleep(2000)
await t await t
.click(composeModalComposeButton) .click(composeModalComposeButton)
await sleep(1000)
await t await t
.expect(modalDialog.exists).notOk() .expect(modalDialog.exists).notOk({ timeout: 20000 })
.expect(getNthStatusContent(2).innerText).match(/@admin heyo\s+update!/, { .expect(getNthStatusContent(2).innerText).match(/@admin heyo\s+update!/, {
timeout: 30000 timeout: 30000
}) })

View file

@ -71,8 +71,9 @@ test('Can update poll results', async t => {
}) })
test('Poll results refresh everywhere', async t => { test('Poll results refresh everywhere', async t => {
await loginAsFoobar(t)
await createPollAs('admin', 'another poll', ['yes', 'no'], false) await createPollAs('admin', 'another poll', ['yes', 'no'], false)
await sleep(2000)
await loginAsFoobar(t)
await t await t
.expect(getNthStatusContent(1).innerText).contains('another poll') .expect(getNthStatusContent(1).innerText).contains('another poll')
.click(getNthStatusRelativeDate(1)) .click(getNthStatusRelativeDate(1))

View file

@ -7,7 +7,7 @@ import {
getComposePollNthInput, getComposePollNthInput,
composePoll, composePoll,
composePollMultipleChoice, composePollMultipleChoice,
composePollExpiry, composePollAddButton, getComposePollRemoveNthButton, postStatusButton, composeInput composePollExpiry, composePollAddButton, getComposePollRemoveNthButton, postStatusButton, composeInput, sleep
} from '../utils' } from '../utils'
import { loginAsFoobar } from '../roles' import { loginAsFoobar } from '../roles'
import { POLL_EXPIRY_DEFAULT } from '../../src/routes/_static/polls' import { POLL_EXPIRY_DEFAULT } from '../../src/routes/_static/polls'
@ -42,20 +42,28 @@ test('Can add and remove poll options', async t => {
.expect(composePoll.exists).ok() .expect(composePoll.exists).ok()
.typeText(getComposePollNthInput(1), 'first', { paste: true }) .typeText(getComposePollNthInput(1), 'first', { paste: true })
.typeText(getComposePollNthInput(2), 'second', { paste: true }) .typeText(getComposePollNthInput(2), 'second', { paste: true })
await sleep(1000)
await t
.click(composePollAddButton) .click(composePollAddButton)
.typeText(getComposePollNthInput(3), 'third', { paste: true }) .typeText(getComposePollNthInput(3), 'third', { paste: true })
.expect(getComposePollNthInput(1).value).eql('first') .expect(getComposePollNthInput(1).value).eql('first')
.expect(getComposePollNthInput(2).value).eql('second') .expect(getComposePollNthInput(2).value).eql('second')
.expect(getComposePollNthInput(3).value).eql('third') .expect(getComposePollNthInput(3).value).eql('third')
.expect(getComposePollNthInput(4).exists).notOk() .expect(getComposePollNthInput(4).exists).notOk()
await sleep(1000)
await t
.click(getComposePollRemoveNthButton(2)) .click(getComposePollRemoveNthButton(2))
.expect(getComposePollNthInput(1).value).eql('first') .expect(getComposePollNthInput(1).value).eql('first')
.expect(getComposePollNthInput(2).value).eql('third') .expect(getComposePollNthInput(2).value).eql('third')
.expect(getComposePollNthInput(3).exists).notOk() .expect(getComposePollNthInput(3).exists).notOk()
.expect(getComposePollNthInput(4).exists).notOk() .expect(getComposePollNthInput(4).exists).notOk()
await sleep(1000)
await t
.click(composePollAddButton) .click(composePollAddButton)
.typeText(getComposePollNthInput(3), 'fourth', { paste: true }) .typeText(getComposePollNthInput(3), 'fourth', { paste: true })
.typeText(composeInput, 'Vote on my poll!!!', { paste: true }) .typeText(composeInput, 'Vote on my poll!!!', { paste: true })
await sleep(1000)
await t
.click(postStatusButton) .click(postStatusButton)
.expect(getNthStatusContent(1).innerText).contains('Vote on my poll!!!') .expect(getNthStatusContent(1).innerText).contains('Vote on my poll!!!')
.expect(getNthStatusPollForm(1).exists).notOk() .expect(getNthStatusPollForm(1).exists).notOk()