semaphore/tests/spec/038-memory-leaks.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

import {
composeInput,
getNthAutosuggestionResult,
getNumSyntheticListeners,
getUrl,
homeNavButton,
scrollToStatus,
scrollToTop,
settingsNavButton, sleep
} from '../utils'
import { loginAsFoobar } from '../roles'
fixture`038-memory-leaks.js`
.page`http://localhost:4002`
async function goToStartPoint (t) {
await t
.click(settingsNavButton)
.expect(getUrl()).contains('/settings')
}
async function interactAndGoToEndPoint (t) {
await t
.click(homeNavButton)
.expect(getUrl()).eql('http://localhost:4002/')
await scrollToStatus(t, 15)
await scrollToTop()
await t
.typeText(composeInput, 'hey @qu')
.expect(getNthAutosuggestionResult(1).find('.sr-only').innerText).contains('@quux')
.click(settingsNavButton)
.expect(getUrl()).contains('/settings')
}
test('Does not leak synthetic listeners', async t => {
await loginAsFoobar(t)
await goToStartPoint(t)
await sleep(1000)
const numSyntheticListeners = await getNumSyntheticListeners()
await t
.expect(numSyntheticListeners).typeOf('number')
await interactAndGoToEndPoint(t)
await sleep(1000)
await t
.expect(getNumSyntheticListeners()).eql(numSyntheticListeners)
})