kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
Add tests for emoji utils
rodzic
3ce90dcf66
commit
21b250c6ea
|
@ -2,7 +2,9 @@ import {
|
||||||
sortEmoji,
|
sortEmoji,
|
||||||
mergeEmojiFavourites,
|
mergeEmojiFavourites,
|
||||||
filterEmoji,
|
filterEmoji,
|
||||||
|
oneEmojiPerAccount,
|
||||||
reduceEmoji,
|
reduceEmoji,
|
||||||
|
getReactForStatus,
|
||||||
} from '../emoji_reacts';
|
} from '../emoji_reacts';
|
||||||
import { fromJS } from 'immutable';
|
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('👍');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
@ -30,6 +30,10 @@ export const mergeEmojiFavourites = (emojiReacts, favouritesCount) => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const oneEmojiPerAccount = emojiReacts => {
|
||||||
|
return; // TODO
|
||||||
|
};
|
||||||
|
|
||||||
export const filterEmoji = emojiReacts => (
|
export const filterEmoji = emojiReacts => (
|
||||||
emojiReacts.filter(emojiReact => (
|
emojiReacts.filter(emojiReact => (
|
||||||
ALLOWED_EMOJI.includes(emojiReact.get('name'))
|
ALLOWED_EMOJI.includes(emojiReact.get('name'))
|
||||||
|
@ -39,3 +43,7 @@ export const reduceEmoji = (emojiReacts, favouritesCount) => (
|
||||||
sortEmoji(filterEmoji(mergeEmoji(mergeEmojiFavourites(
|
sortEmoji(filterEmoji(mergeEmoji(mergeEmojiFavourites(
|
||||||
emojiReacts, favouritesCount
|
emojiReacts, favouritesCount
|
||||||
)))));
|
)))));
|
||||||
|
|
||||||
|
export const getReactForStatus = status => {
|
||||||
|
return; // TODO
|
||||||
|
};
|
||||||
|
|
Ładowanie…
Reference in New Issue