1
0
mirror of https://github.com/nolanlawson/pinafore synced 2024-12-15 11:48:35 +01:00
Pinafore-Web-Client-Frontend/tests/spec/015-compose-content-warnings.js
2018-03-06 21:32:51 -08:00

69 lines
3.0 KiB
JavaScript

import {
composeContentWarning, composeInput, composeLengthIndicator, contentWarningButton, homeNavButton,
notificationsNavButton
} from '../utils'
import { foobarRole } from '../roles'
fixture`015-compose-content-warnings.js`
.page`http://localhost:4002`
test('Changes content warnings', async t => {
await t.useRole(foobarRole)
.expect(composeContentWarning.exists).notOk()
.expect(contentWarningButton.getAttribute('aria-label')).eql('Add content warning')
.expect(contentWarningButton.getAttribute('aria-pressed')).eql('false')
.click(contentWarningButton)
.expect(composeContentWarning.exists).ok()
.expect(contentWarningButton.getAttribute('aria-label')).eql('Remove content warning')
.expect(contentWarningButton.getAttribute('aria-pressed')).eql('true')
.typeText(composeContentWarning, 'hello content warning', {paste: true})
.typeText(composeInput, 'secret text', {paste: true})
.click(notificationsNavButton)
.click(homeNavButton)
.expect(contentWarningButton.getAttribute('aria-label')).eql('Remove content warning')
.expect(contentWarningButton.getAttribute('aria-pressed')).eql('true')
.expect(composeContentWarning.value).eql('hello content warning')
.expect(composeInput.value).eql('secret text')
.selectText(composeInput)
.pressKey('delete')
.selectText(composeContentWarning)
.pressKey('delete')
.expect(composeContentWarning.value).eql('')
.expect(composeInput.value).eql('')
.click(contentWarningButton)
.expect(composeContentWarning.exists).notOk()
.expect(contentWarningButton.getAttribute('aria-label')).eql('Add content warning')
.expect(contentWarningButton.getAttribute('aria-pressed')).eql('false')
})
test('Considers content warnings for length limits', async t => {
await t.useRole(foobarRole)
.expect(composeLengthIndicator.innerText).eql('500')
.click(contentWarningButton)
.typeText(composeContentWarning, 'my content warning', {paste: true})
.expect(composeLengthIndicator.innerText).eql('482')
.typeText(composeInput, 'secret text', {paste: true})
.expect(composeLengthIndicator.innerText).eql('471')
.selectText(composeContentWarning)
.pressKey('delete')
.expect(composeLengthIndicator.innerText).eql('489')
.selectText(composeInput)
.pressKey('delete')
.expect(composeLengthIndicator.innerText).eql('500')
})
test('Considers hidden content warnings for length limits', async t => {
await t.useRole(foobarRole)
.expect(composeLengthIndicator.innerText).eql('500')
.click(contentWarningButton)
.typeText(composeContentWarning, 'my content warning', {paste: true})
.expect(composeLengthIndicator.innerText).eql('482')
.click(contentWarningButton)
.expect(composeLengthIndicator.innerText).eql('500')
.click(contentWarningButton)
.expect(composeLengthIndicator.innerText).eql('482')
.selectText(composeContentWarning)
.pressKey('delete')
.expect(composeLengthIndicator.innerText).eql('500')
})