Create Notification normalizer
This commit is contained in:
parent
e5f1fae956
commit
37827c34d9
2 changed files with 37 additions and 0 deletions
17
app/soapbox/normalizers/__tests__/notification-test.js
Normal file
17
app/soapbox/normalizers/__tests__/notification-test.js
Normal file
|
@ -0,0 +1,17 @@
|
|||
import { Record as ImmutableRecord, fromJS } from 'immutable';
|
||||
|
||||
import { normalizeNotification } from '../notification';
|
||||
|
||||
describe('normalizeNotification()', () => {
|
||||
it('normalizes an empty map', () => {
|
||||
const notification = fromJS({});
|
||||
const result = normalizeNotification(notification);
|
||||
|
||||
expect(ImmutableRecord.isRecord(result)).toBe(true);
|
||||
expect(result.type).toEqual('');
|
||||
expect(result.account).toBe(null);
|
||||
expect(result.target).toBe(null);
|
||||
expect(result.status).toBe(null);
|
||||
expect(result.id).toEqual('');
|
||||
});
|
||||
});
|
20
app/soapbox/normalizers/notification.ts
Normal file
20
app/soapbox/normalizers/notification.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
import {
|
||||
Map as ImmutableMap,
|
||||
Record as ImmutableRecord,
|
||||
} from 'immutable';
|
||||
|
||||
// https://docs.joinmastodon.org/entities/notification/
|
||||
const NotificationRecord = ImmutableRecord({
|
||||
account: null,
|
||||
chat_message: null, // pleroma:chat_mention
|
||||
created_at: new Date(),
|
||||
emoji: null, // pleroma:emoji_reaction
|
||||
id: '',
|
||||
status: null,
|
||||
target: null, // move
|
||||
type: '',
|
||||
});
|
||||
|
||||
export const normalizeNotification = (notification: ImmutableMap<string, any>) => {
|
||||
return NotificationRecord(notification);
|
||||
};
|
Loading…
Reference in a new issue