import PleromaAPI from '@/pleroma/api_client' import MegalodonEntity from '@/entity' import PleromaEntity from '@/pleroma/entity' import MegalodonNotificationType from '@/notification' import PleromaNotificationType from '@/pleroma/notification' const account: PleromaEntity.Account = { id: '1', username: 'h3poteto', acct: 'h3poteto@pleroma.io', display_name: 'h3poteto', locked: false, noindex: null, suspended: null, limited: null, created_at: '2019-03-26T21:30:32', followers_count: 10, following_count: 10, statuses_count: 100, note: 'engineer', url: 'https://pleroma.io', avatar: '', avatar_static: '', header: '', header_static: '', emojis: [], moved: null, fields: [], bot: false, source: { privacy: null, sensitive: false, language: null, note: 'test', fields: [] } } describe('api_client', () => { describe('notification', () => { describe('encode', () => { it('megalodon notification type should be encoded to pleroma notification type', () => { const cases: Array<{ src: MegalodonEntity.NotificationType; dist: PleromaEntity.NotificationType }> = [ { src: MegalodonNotificationType.Follow, dist: PleromaNotificationType.Follow }, { src: MegalodonNotificationType.Favourite, dist: PleromaNotificationType.Favourite }, { src: MegalodonNotificationType.Reblog, dist: PleromaNotificationType.Reblog }, { src: MegalodonNotificationType.Mention, dist: PleromaNotificationType.Mention }, { src: MegalodonNotificationType.PollExpired, dist: PleromaNotificationType.Poll }, { src: MegalodonNotificationType.EmojiReaction, dist: PleromaNotificationType.PleromaEmojiReaction }, { src: MegalodonNotificationType.FollowRequest, dist: PleromaNotificationType.FollowRequest }, { src: MegalodonNotificationType.Update, dist: PleromaNotificationType.Update }, { src: MegalodonNotificationType.Move, dist: PleromaNotificationType.Move } ] cases.forEach(c => { expect(PleromaAPI.Converter.encodeNotificationType(c.src)).toEqual(c.dist) }) }) }) describe('decode', () => { it('pleroma notification type should be decoded to megalodon notification type', () => { const cases: Array<{ src: PleromaEntity.NotificationType; dist: MegalodonEntity.NotificationType }> = [ { src: PleromaNotificationType.Follow, dist: MegalodonNotificationType.Follow }, { src: PleromaNotificationType.Favourite, dist: MegalodonNotificationType.Favourite }, { src: PleromaNotificationType.Mention, dist: MegalodonNotificationType.Mention }, { src: PleromaNotificationType.Reblog, dist: MegalodonNotificationType.Reblog }, { src: PleromaNotificationType.Poll, dist: MegalodonNotificationType.PollExpired }, { src: PleromaNotificationType.PleromaEmojiReaction, dist: MegalodonNotificationType.EmojiReaction }, { src: PleromaNotificationType.FollowRequest, dist: MegalodonNotificationType.FollowRequest }, { src: PleromaNotificationType.Update, dist: MegalodonNotificationType.Update }, { src: PleromaNotificationType.Move, dist: MegalodonNotificationType.Move } ] cases.forEach(c => { expect(PleromaAPI.Converter.decodeNotificationType(c.src)).toEqual(c.dist) }) }) }) }) describe('status', () => { describe('plain content is included', () => { it('plain content in pleroma entity should be exported in plain_content column', () => { const plainContent = 'hoge\nfuga\nfuga' const content = '
hoge
fuga
fuga
hoge
fuga
fuga