import MastodonAPI from '@/mastodon/api_client' import MegalodonEntity from '@/entity' import MastodonEntity from '@/mastodon/entity' import MegalodonNotificationType from '@/notification' import MastodonNotificationType from '@/mastodon/notification' describe('api_client', () => { describe('notification', () => { describe('encode', () => { it('megalodon notification type should be encoded to mastodon notification type', () => { const cases: Array<{ src: MegalodonEntity.NotificationType; dist: MastodonEntity.NotificationType }> = [ { src: MegalodonNotificationType.Follow, dist: MastodonNotificationType.Follow }, { src: MegalodonNotificationType.Favourite, dist: MastodonNotificationType.Favourite }, { src: MegalodonNotificationType.Reblog, dist: MastodonNotificationType.Reblog }, { src: MegalodonNotificationType.Mention, dist: MastodonNotificationType.Mention }, { src: MegalodonNotificationType.PollExpired, dist: MastodonNotificationType.Poll }, { src: MegalodonNotificationType.FollowRequest, dist: MastodonNotificationType.FollowRequest }, { src: MegalodonNotificationType.Status, dist: MastodonNotificationType.Status } ] cases.forEach(c => { expect(MastodonAPI.Converter.encodeNotificationType(c.src)).toEqual(c.dist) }) }) }) describe('decode', () => { it('mastodon notification type should be decoded to megalodon notification type', () => { const cases: Array<{ src: MastodonEntity.NotificationType; dist: MegalodonEntity.NotificationType }> = [ { src: MastodonNotificationType.Follow, dist: MegalodonNotificationType.Follow }, { src: MastodonNotificationType.Favourite, dist: MegalodonNotificationType.Favourite }, { src: MastodonNotificationType.Mention, dist: MegalodonNotificationType.Mention }, { src: MastodonNotificationType.Reblog, dist: MegalodonNotificationType.Reblog }, { src: MastodonNotificationType.Poll, dist: MegalodonNotificationType.PollExpired }, { src: MastodonNotificationType.FollowRequest, dist: MegalodonNotificationType.FollowRequest } ] cases.forEach(c => { expect(MastodonAPI.Converter.decodeNotificationType(c.src)).toEqual(c.dist) }) }) }) }) })