sforkowany z mirror/soapbox
Tests: Notification reducer NOTIFICATIONS_EXPAND_SUCCESS
rodzic
d78a62ed41
commit
0e86d03c97
Plik diff jest za duży
Load Diff
|
@ -1,5 +1,10 @@
|
||||||
|
import {
|
||||||
|
NOTIFICATIONS_EXPAND_SUCCESS,
|
||||||
|
} from 'soapbox/actions/notifications';
|
||||||
import reducer from '../notifications';
|
import reducer from '../notifications';
|
||||||
|
import notifications from 'soapbox/__fixtures__/notifications.json';
|
||||||
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
|
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
|
||||||
|
import { take } from 'lodash';
|
||||||
|
|
||||||
describe('notifications reducer', () => {
|
describe('notifications reducer', () => {
|
||||||
it('should return the initial state', () => {
|
it('should return the initial state', () => {
|
||||||
|
@ -14,4 +19,53 @@ describe('notifications reducer', () => {
|
||||||
lastRead: -1,
|
lastRead: -1,
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('NOTIFICATIONS_EXPAND_SUCCESS', () => {
|
||||||
|
const state = undefined;
|
||||||
|
const action = {
|
||||||
|
type: NOTIFICATIONS_EXPAND_SUCCESS,
|
||||||
|
notifications: take(notifications, 3),
|
||||||
|
next: null,
|
||||||
|
skipLoading: true,
|
||||||
|
};
|
||||||
|
expect(reducer(state, action)).toEqual(ImmutableMap({
|
||||||
|
items: ImmutableList([
|
||||||
|
ImmutableMap({
|
||||||
|
id: '10744',
|
||||||
|
type: 'pleroma:emoji_reaction',
|
||||||
|
account: '9vMAje101ngtjlMj7w',
|
||||||
|
created_at: '2020-06-10T02:54:39.000Z',
|
||||||
|
status: '9vvNxoo5EFbbnfdXQu',
|
||||||
|
emoji: '😢',
|
||||||
|
is_seen: false,
|
||||||
|
}),
|
||||||
|
ImmutableMap({
|
||||||
|
id: '10743',
|
||||||
|
type: 'favourite',
|
||||||
|
account: '9v5c6xSEgAi3Zu1Lv6',
|
||||||
|
created_at: '2020-06-10T02:51:05.000Z',
|
||||||
|
status: '9vvNxoo5EFbbnfdXQu',
|
||||||
|
emoji: undefined,
|
||||||
|
is_seen: true,
|
||||||
|
}),
|
||||||
|
ImmutableMap({
|
||||||
|
id: '10741',
|
||||||
|
type: 'favourite',
|
||||||
|
account: '9v5cKMOPGqPcgfcWp6',
|
||||||
|
created_at: '2020-06-10T02:05:06.000Z',
|
||||||
|
status: '9vvNxoo5EFbbnfdXQu',
|
||||||
|
emoji: undefined,
|
||||||
|
is_seen: true,
|
||||||
|
}),
|
||||||
|
]),
|
||||||
|
hasMore: false,
|
||||||
|
top: false,
|
||||||
|
unread: 0,
|
||||||
|
isLoading: false,
|
||||||
|
queuedNotifications: ImmutableList(),
|
||||||
|
totalQueuedNotificationsCount: 0,
|
||||||
|
lastRead: -1,
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -23,6 +23,7 @@ import { TIMELINE_DELETE, TIMELINE_DISCONNECT } from '../actions/timelines';
|
||||||
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
|
import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
|
||||||
import compareId from '../compare_id';
|
import compareId from '../compare_id';
|
||||||
import { fromJS } from 'immutable';
|
import { fromJS } from 'immutable';
|
||||||
|
import { get } from 'lodash';
|
||||||
|
|
||||||
const initialState = ImmutableMap({
|
const initialState = ImmutableMap({
|
||||||
items: ImmutableList(),
|
items: ImmutableList(),
|
||||||
|
@ -42,6 +43,7 @@ const notificationToMap = notification => ImmutableMap({
|
||||||
created_at: notification.created_at,
|
created_at: notification.created_at,
|
||||||
status: notification.status ? notification.status.id : null,
|
status: notification.status ? notification.status.id : null,
|
||||||
emoji: notification.emoji,
|
emoji: notification.emoji,
|
||||||
|
is_seen: get(notification, ['pleroma', 'is_seen'], true),
|
||||||
});
|
});
|
||||||
|
|
||||||
const normalizeNotification = (state, notification) => {
|
const normalizeNotification = (state, notification) => {
|
||||||
|
|
Ładowanie…
Reference in New Issue