Add tests for emoji utils

stable/1.0.x
Alex Gleason 2020-05-21 23:17:11 -05:00
rodzic 3ce90dcf66
commit 21b250c6ea
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 7211D1F99744FBB7
2 zmienionych plików z 48 dodań i 0 usunięć

Wyświetl plik

@ -2,7 +2,9 @@ import {
sortEmoji,
mergeEmojiFavourites,
filterEmoji,
oneEmojiPerAccount,
reduceEmoji,
getReactForStatus,
} from '../emoji_reacts';
import { fromJS } from 'immutable';
@ -114,3 +116,41 @@ describe('reduceEmoji', () => {
});
});
});
describe('oneEmojiPerAccount', () => {
it('reduces to one react per account', () => {
const emojiReacts = fromJS([
// Sorted
{ 'count': 20, 'me': true, 'name': '👍', accounts: [{ id: '1' }, { id: '2' }] },
{ 'count': 15, 'me': true, 'name': '❤', accounts: [{ id: '1' }, { id: '2' }] },
{ 'count': 7, 'me': true, 'name': '😯', accounts: [{ id: '1' }] },
{ 'count': 7, 'me': false, 'name': '😂', accounts: [{ id: '3' }] },
]);
expect(oneEmojiPerAccount(emojiReacts)).toEqual(fromJS([
{ 'count': 20, 'me': true, 'name': '👍', accounts: [{ id: '1' }, { id: '2' }] },
{ 'count': 7, 'me': false, 'name': '😂', accounts: [{ id: '3' }] },
]));
});
});
describe('getReactForStatus', () => {
it('returns a single owned react (including favourite) for the status', () => {
const status = fromJS({
favourited: false,
pleroma: {
emoji_reactions: [
{ 'count': 20, 'me': false, 'name': '👍' },
{ 'count': 15, 'me': true, 'name': '❤' },
{ 'count': 7, 'me': true, 'name': '😯' },
{ 'count': 7, 'me': false, 'name': '😂' },
],
},
});
expect(getReactForStatus(status)).toEqual('❤');
});
it('returns a thumbs-up for a favourite', () => {
const status = fromJS({ favourited: true });
expect(getReactForStatus(status)).toEqual('👍');
});
});

Wyświetl plik

@ -30,6 +30,10 @@ export const mergeEmojiFavourites = (emojiReacts, favouritesCount) => {
}
};
export const oneEmojiPerAccount = emojiReacts => {
return; // TODO
};
export const filterEmoji = emojiReacts => (
emojiReacts.filter(emojiReact => (
ALLOWED_EMOJI.includes(emojiReact.get('name'))
@ -39,3 +43,7 @@ export const reduceEmoji = (emojiReacts, favouritesCount) => (
sortEmoji(filterEmoji(mergeEmoji(mergeEmojiFavourites(
emojiReacts, favouritesCount
)))));
export const getReactForStatus = status => {
return; // TODO
};