1/* eslint-env jest */ 2import * as RPCChatTypes from '../../types/rpc-chat-gen' 3import {serviceMessageTypeToMessageTypes} from '../message' 4 5const cases = [ 6 {in: RPCChatTypes.MessageType.none, out: []}, 7 {in: RPCChatTypes.MessageType.text, out: ['text']}, 8 {in: RPCChatTypes.MessageType.attachment, out: ['attachment']}, 9 {in: RPCChatTypes.MessageType.edit, out: []}, 10 {in: RPCChatTypes.MessageType.delete, out: []}, 11 {in: RPCChatTypes.MessageType.metadata, out: ['setDescription']}, 12 {in: RPCChatTypes.MessageType.tlfname, out: []}, 13 {in: RPCChatTypes.MessageType.headline, out: ['setChannelname']}, 14 {in: RPCChatTypes.MessageType.attachmentuploaded, out: ['attachment']}, 15 {in: RPCChatTypes.MessageType.join, out: ['systemJoined']}, 16 {in: RPCChatTypes.MessageType.leave, out: ['systemLeft']}, 17 { 18 in: RPCChatTypes.MessageType.system, 19 out: [ 20 'systemAddedToTeam', 21 'systemChangeRetention', 22 'systemCreateTeam', 23 'systemGitPush', 24 'systemInviteAccepted', 25 'systemSBSResolved', 26 'systemSimpleToComplex', 27 'systemText', 28 'systemUsersAddedToConversation', 29 'systemChangeAvatar', 30 'systemNewChannel', 31 ], 32 }, 33 {in: RPCChatTypes.MessageType.deletehistory, out: []}, 34 {in: RPCChatTypes.MessageType.reaction, out: []}, 35 {in: RPCChatTypes.MessageType.unfurl, out: []}, 36 {in: RPCChatTypes.MessageType.sendpayment, out: ['sendPayment']}, 37 {in: RPCChatTypes.MessageType.requestpayment, out: ['requestPayment']}, 38 {in: RPCChatTypes.MessageType.flip, out: []}, 39 {in: RPCChatTypes.MessageType.pin, out: []}, 40] 41 42describe('serviceMessageTypeToMessageTypes', () => { 43 it('returns the expected types', () => { 44 cases.forEach(c => expect(serviceMessageTypeToMessageTypes(c.in).sort()).toEqual(c.out.sort())) 45 }) 46 it('handles all service message types', () => { 47 const handledTypes = cases.map(c => c.in) 48 const serviceTypes = Object.values(RPCChatTypes.MessageType).filter( 49 k => typeof RPCChatTypes.MessageType[k as any] !== 'number' 50 ) 51 expect(handledTypes.sort()).toEqual(serviceTypes.sort()) 52 }) 53}) 54