pinafore/tests/spec/035-notification-timeline-f...

49 wiersze
1.7 KiB
JavaScript

import {
validateTimeline,
settingsNavButton,
instanceSettingNotificationReblogs,
notificationsNavButton,
instanceSettingNotificationFavs,
instanceSettingNotificationFollows,
instanceSettingNotificationMentions
} from '../utils'
import { loginAsFoobar } from '../roles'
import { notifications } from '../fixtures'
import { Selector as $ } from 'testcafe'
fixture`035-notification-timeline-filters.js`
.page`http://localhost:4002`
function setSettingAndGoToNotifications (t, setting) {
return t.click(settingsNavButton)
.click($('a[href="/settings/instances"]'))
.click($('a[href="/settings/instances/localhost:3000"]'))
.click(setting)
.expect(setting.checked).notOk()
.click(notificationsNavButton)
}
test('Filters reblogs from notification timeline', async t => {
await loginAsFoobar(t)
await setSettingAndGoToNotifications(t, instanceSettingNotificationReblogs)
await validateTimeline(t, notifications.filter(_ => !_.rebloggedBy))
})
test('Filters favs from notification timeline', async t => {
await loginAsFoobar(t)
await setSettingAndGoToNotifications(t, instanceSettingNotificationFavs)
await validateTimeline(t, notifications.filter(_ => !_.favoritedBy))
})
test('Filters follows from notification timeline', async t => {
await loginAsFoobar(t)
await setSettingAndGoToNotifications(t, instanceSettingNotificationFollows)
await validateTimeline(t, notifications.filter(_ => !_.followedBy))
})
test('Filters mentions from notification timeline', async t => {
await loginAsFoobar(t)
await setSettingAndGoToNotifications(t, instanceSettingNotificationMentions)
await validateTimeline(t, notifications.filter(_ => !_.content))
})