mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
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)
 | 
						|
        })
 | 
						|
      })
 | 
						|
    })
 | 
						|
  })
 | 
						|
})
 |