Changeset View
Changeset View
Standalone View
Standalone View
lib/shared/reaction-utils.test.js
// @flow | // @flow | ||||
import { stringForReactionList } from './reaction-utils.js'; | import { stringForReactionList } from './reaction-utils.js'; | ||||
import type { ReactionInfo } from '../selectors/chat-selectors.js'; | import type { ReactionInfo } from '../selectors/chat-selectors.js'; | ||||
describe('stringForReactionList(reactions: ReactionInfo)', () => { | describe('stringForReactionList(reactions: ReactionInfo)', () => { | ||||
it( | it( | ||||
'should return (👍 3) for a message with three user likes' + | 'should return (👍 3) for a message with three user likes' + | ||||
' including the viewer', | ' including the viewer', | ||||
() => { | () => { | ||||
const messageLikesUsers = [ | const messageLikesUsers = [ | ||||
{ id: '83810', isViewer: true, username: 'ginsu', avatar: null }, | { id: '83810', isViewer: true, username: 'ginsu' }, | ||||
{ id: '86622', isViewer: false, username: 'ashoat', avatar: null }, | { id: '86622', isViewer: false, username: 'ashoat' }, | ||||
{ id: '83889', isViewer: false, username: 'atul', avatar: null }, | { id: '83889', isViewer: false, username: 'atul' }, | ||||
]; | ]; | ||||
const messageLikesInfo = { | const messageLikesInfo = { | ||||
users: messageLikesUsers, | users: messageLikesUsers, | ||||
viewerReacted: true, | viewerReacted: true, | ||||
}; | }; | ||||
const reactions: ReactionInfo = { | const reactions: ReactionInfo = { | ||||
'👍': messageLikesInfo, | '👍': messageLikesInfo, | ||||
}; | }; | ||||
expect(stringForReactionList(reactions)).toBe('👍 3'); | expect(stringForReactionList(reactions)).toBe('👍 3'); | ||||
}, | }, | ||||
); | ); | ||||
it( | it( | ||||
'should return (👍 3) for a message with three user likes' + | 'should return (👍 3) for a message with three user likes' + | ||||
' not including the viewer', | ' not including the viewer', | ||||
() => { | () => { | ||||
const messageLikesUsers = [ | const messageLikesUsers = [ | ||||
{ id: '83810', isViewer: false, username: 'ginsu', avatar: null }, | { id: '83810', isViewer: false, username: 'ginsu' }, | ||||
{ id: '86622', isViewer: false, username: 'ashoat', avatar: null }, | { id: '86622', isViewer: false, username: 'ashoat' }, | ||||
{ id: '83889', isViewer: false, username: 'atul', avatar: null }, | { id: '83889', isViewer: false, username: 'atul' }, | ||||
]; | ]; | ||||
const messageLikesInfo = { | const messageLikesInfo = { | ||||
users: messageLikesUsers, | users: messageLikesUsers, | ||||
viewerReacted: false, | viewerReacted: false, | ||||
}; | }; | ||||
const reactions: ReactionInfo = { | const reactions: ReactionInfo = { | ||||
'👍': messageLikesInfo, | '👍': messageLikesInfo, | ||||
}; | }; | ||||
expect(stringForReactionList(reactions)).toBe('👍 3'); | expect(stringForReactionList(reactions)).toBe('👍 3'); | ||||
}, | }, | ||||
); | ); | ||||
it( | it( | ||||
'should return (👍) for a message with one user like' + | 'should return (👍) for a message with one user like' + | ||||
' including the viewer', | ' including the viewer', | ||||
() => { | () => { | ||||
const messageLikesUsers = [ | const messageLikesUsers = [ | ||||
{ id: '83810', isViewer: false, username: 'ginsu', avatar: null }, | { id: '83810', isViewer: false, username: 'ginsu' }, | ||||
]; | ]; | ||||
const messageLikesInfo = { | const messageLikesInfo = { | ||||
users: messageLikesUsers, | users: messageLikesUsers, | ||||
viewerReacted: true, | viewerReacted: true, | ||||
}; | }; | ||||
const reactions: ReactionInfo = { | const reactions: ReactionInfo = { | ||||
'👍': messageLikesInfo, | '👍': messageLikesInfo, | ||||
}; | }; | ||||
expect(stringForReactionList(reactions)).toBe('👍'); | expect(stringForReactionList(reactions)).toBe('👍'); | ||||
}, | }, | ||||
); | ); | ||||
it( | it( | ||||
'should return (👍) for a message with one user like' + | 'should return (👍) for a message with one user like' + | ||||
' not including the viewer', | ' not including the viewer', | ||||
() => { | () => { | ||||
const messageLikesUsers = [ | const messageLikesUsers = [ | ||||
{ id: '83810', isViewer: false, username: 'ashoat', avatar: null }, | { id: '83810', isViewer: false, username: 'ashoat' }, | ||||
]; | ]; | ||||
const messageLikesInfo = { | const messageLikesInfo = { | ||||
users: messageLikesUsers, | users: messageLikesUsers, | ||||
viewerReacted: false, | viewerReacted: false, | ||||
}; | }; | ||||
const reactions: ReactionInfo = { | const reactions: ReactionInfo = { | ||||
'👍': messageLikesInfo, | '👍': messageLikesInfo, | ||||
Show All 9 Lines | it('should return an empty string for a message no reactions', () => { | ||||
expect(stringForReactionList(reactions)).toBe(''); | expect(stringForReactionList(reactions)).toBe(''); | ||||
}); | }); | ||||
it( | it( | ||||
'should return (👍 😆 3) for a message with one like not including' + | 'should return (👍 😆 3) for a message with one like not including' + | ||||
' the viewer and three laugh reactions including the viewer', | ' the viewer and three laugh reactions including the viewer', | ||||
() => { | () => { | ||||
const messageLikesUsers = [ | const messageLikesUsers = [ | ||||
{ id: '83810', isViewer: false, username: 'varun', avatar: null }, | { id: '83810', isViewer: false, username: 'varun' }, | ||||
]; | ]; | ||||
const messageLikesInfo = { | const messageLikesInfo = { | ||||
users: messageLikesUsers, | users: messageLikesUsers, | ||||
viewerReacted: false, | viewerReacted: false, | ||||
}; | }; | ||||
const messageLaughsUsers = [ | const messageLaughsUsers = [ | ||||
{ id: '12345', isViewer: true, username: 'ginsu', avatar: null }, | { id: '12345', isViewer: true, username: 'ginsu' }, | ||||
{ id: '67890', isViewer: false, username: 'ashoat', avatar: null }, | { id: '67890', isViewer: false, username: 'ashoat' }, | ||||
{ id: '83889', isViewer: false, username: 'atul', avatar: null }, | { id: '83889', isViewer: false, username: 'atul' }, | ||||
]; | ]; | ||||
const messageLaughsInfo = { | const messageLaughsInfo = { | ||||
users: messageLaughsUsers, | users: messageLaughsUsers, | ||||
viewerReacted: true, | viewerReacted: true, | ||||
}; | }; | ||||
const reactions: ReactionInfo = { | const reactions: ReactionInfo = { | ||||
'👍': messageLikesInfo, | '👍': messageLikesInfo, | ||||
'😆': messageLaughsInfo, | '😆': messageLaughsInfo, | ||||
}; | }; | ||||
expect(stringForReactionList(reactions)).toBe('👍 😆 3'); | expect(stringForReactionList(reactions)).toBe('👍 😆 3'); | ||||
}, | }, | ||||
); | ); | ||||
it( | it( | ||||
'should return (👍 9+) for a message with 12 user likes' + | 'should return (👍 9+) for a message with 12 user likes' + | ||||
' not including the viewer', | ' not including the viewer', | ||||
() => { | () => { | ||||
const messageLikesUsers = [ | const messageLikesUsers = [ | ||||
{ id: '86622', isViewer: false, username: 'ginsu', avatar: null }, | { id: '86622', isViewer: false, username: 'ginsu' }, | ||||
{ id: '12345', isViewer: false, username: 'ashoat', avatar: null }, | { id: '12345', isViewer: false, username: 'ashoat' }, | ||||
{ id: '67890', isViewer: false, username: 'atul', avatar: null }, | { id: '67890', isViewer: false, username: 'atul' }, | ||||
{ id: '83889', isViewer: false, username: 'varun', avatar: null }, | { id: '83889', isViewer: false, username: 'varun' }, | ||||
{ id: '49203', isViewer: false, username: 'tomek', avatar: null }, | { id: '49203', isViewer: false, username: 'tomek' }, | ||||
{ id: '83029', isViewer: false, username: 'max', avatar: null }, | { id: '83029', isViewer: false, username: 'max' }, | ||||
{ id: '72902', isViewer: false, username: 'jon', avatar: null }, | { id: '72902', isViewer: false, username: 'jon' }, | ||||
{ id: '49022', isViewer: false, username: 'mark', avatar: null }, | { id: '49022', isViewer: false, username: 'mark' }, | ||||
{ id: '48902', isViewer: false, username: 'kamil', avatar: null }, | { id: '48902', isViewer: false, username: 'kamil' }, | ||||
{ id: '80922', isViewer: false, username: 'marcin', avatar: null }, | { id: '80922', isViewer: false, username: 'marcin' }, | ||||
{ id: '12890', isViewer: false, username: 'inka', avatar: null }, | { id: '12890', isViewer: false, username: 'inka' }, | ||||
{ id: '67891', isViewer: false, username: 'przemek', avatar: null }, | { id: '67891', isViewer: false, username: 'przemek' }, | ||||
]; | ]; | ||||
const messageLikesInfo = { | const messageLikesInfo = { | ||||
users: messageLikesUsers, | users: messageLikesUsers, | ||||
viewerReacted: false, | viewerReacted: false, | ||||
}; | }; | ||||
const reactions: ReactionInfo = { | const reactions: ReactionInfo = { | ||||
'👍': messageLikesInfo, | '👍': messageLikesInfo, | ||||
}; | }; | ||||
expect(stringForReactionList(reactions)).toBe('👍 9+'); | expect(stringForReactionList(reactions)).toBe('👍 9+'); | ||||
}, | }, | ||||
); | ); | ||||
}); | }); |