90 lines
2.1 KiB
JavaScript
90 lines
2.1 KiB
JavaScript
import * as NotificationUtils from 'src/services/notification_utils/notification_utils.js'
|
|
|
|
describe('NotificationUtils', () => {
|
|
describe('filteredNotificationsFromStore', () => {
|
|
it('should return sorted notifications with configured types', () => {
|
|
const store = {
|
|
state: {
|
|
notifications: {
|
|
data: [
|
|
{
|
|
id: 1,
|
|
action: { id: '1' },
|
|
type: 'like'
|
|
},
|
|
{
|
|
id: 2,
|
|
action: { id: '2' },
|
|
type: 'mention'
|
|
},
|
|
{
|
|
id: 3,
|
|
action: { id: '3' },
|
|
type: 'repeat'
|
|
}
|
|
]
|
|
},
|
|
config: {
|
|
notificationVisibility: {
|
|
likes: true,
|
|
repeats: true,
|
|
mentions: false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
const expected = [
|
|
{
|
|
action: { id: '3' },
|
|
id: 3,
|
|
type: 'repeat'
|
|
},
|
|
{
|
|
action: { id: '1' },
|
|
id: 1,
|
|
type: 'like'
|
|
}
|
|
]
|
|
expect(NotificationUtils.filteredNotificationsFromStore(store)).to.eql(expected)
|
|
})
|
|
})
|
|
|
|
describe('unseenNotificationsFromStore', () => {
|
|
it('should return only notifications not marked as seen', () => {
|
|
const store = {
|
|
state: {
|
|
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)
|
|
})
|
|
})
|
|
})
|