pleroma-fe/test/unit/specs/services/notification_utils/notification_utils.spec.js

94 lines
2.2 KiB
JavaScript
Raw Permalink Normal View History

import * as NotificationUtils from 'src/services/notification_utils/notification_utils.js'
describe('NotificationUtils', () => {
describe('visibleNotificationsFromStore', () => {
it('should return sorted notifications with configured types', () => {
const store = {
state: {
statuses: {
notifications: {
data: [
{
2019-03-14 23:06:40 +11:00
id: 1,
action: { id: '1' },
type: 'like'
},
{
2019-03-14 23:06:40 +11:00
id: 2,
action: { id: '2' },
type: 'mention'
},
{
2019-03-14 23:06:40 +11:00
id: 3,
action: { id: '3' },
type: 'repeat'
}
]
}
},
config: {
notificationVisibility: {
likes: true,
repeats: true,
mentions: false
}
}
}
}
const expected = [
{
action: { id: '3' },
2019-03-14 23:06:40 +11:00
id: 3,
type: 'repeat'
},
{
action: { id: '1' },
2019-03-14 23:06:40 +11:00
id: 1,
type: 'like'
}
]
expect(NotificationUtils.visibleNotificationsFromStore(store)).to.eql(expected)
})
})
describe('unseenNotificationsFromStore', () => {
it('should return only notifications not marked as seen', () => {
const store = {
state: {
statuses: {
notifications: {
data: [
{
action: { id: '1' },
type: 'like',
seen: false
},
{
action: { id: '2' },
type: 'mention',
seen: true
}
]
}
},
config: {
notificationVisibility: {
likes: true,
repeats: true,
mentions: false
}
}
}
}
const expected = [
{
action: { id: '1' },
type: 'like',
seen: false
}
]
expect(NotificationUtils.unseenNotificationsFromStore(store)).to.eql(expected)
})
})
})