github.com/mattermost/mattermost-plugin-api@v0.1.4/emoji_test.go (about) 1 package pluginapi_test 2 3 import ( 4 "io" 5 "testing" 6 7 "github.com/mattermost/mattermost-server/v6/model" 8 "github.com/mattermost/mattermost-server/v6/plugin/plugintest" 9 "github.com/stretchr/testify/require" 10 11 pluginapi "github.com/mattermost/mattermost-plugin-api" 12 ) 13 14 func TestGetEmoji(t *testing.T) { 15 t.Run("success", func(t *testing.T) { 16 api := &plugintest.API{} 17 defer api.AssertExpectations(t) 18 client := pluginapi.NewClient(api, &plugintest.Driver{}) 19 20 api.On("GetEmoji", "1").Return(&model.Emoji{Id: "2"}, nil) 21 22 emoji, err := client.Emoji.Get("1") 23 require.NoError(t, err) 24 require.Equal(t, "2", emoji.Id) 25 }) 26 27 t.Run("failure", func(t *testing.T) { 28 api := &plugintest.API{} 29 defer api.AssertExpectations(t) 30 client := pluginapi.NewClient(api, &plugintest.Driver{}) 31 32 appErr := newAppError() 33 34 api.On("GetEmoji", "1").Return(nil, appErr) 35 36 emoji, err := client.Emoji.Get("1") 37 require.Equal(t, appErr, err) 38 require.Zero(t, emoji) 39 }) 40 } 41 42 func TestGetEmojiByName(t *testing.T) { 43 t.Run("success", func(t *testing.T) { 44 api := &plugintest.API{} 45 defer api.AssertExpectations(t) 46 client := pluginapi.NewClient(api, &plugintest.Driver{}) 47 48 api.On("GetEmojiByName", "1").Return(&model.Emoji{Id: "2"}, nil) 49 50 emoji, err := client.Emoji.GetByName("1") 51 require.NoError(t, err) 52 require.Equal(t, "2", emoji.Id) 53 }) 54 55 t.Run("failure", func(t *testing.T) { 56 api := &plugintest.API{} 57 defer api.AssertExpectations(t) 58 client := pluginapi.NewClient(api, &plugintest.Driver{}) 59 60 appErr := newAppError() 61 62 api.On("GetEmojiByName", "1").Return(nil, appErr) 63 64 emoji, err := client.Emoji.GetByName("1") 65 require.Equal(t, appErr, err) 66 require.Zero(t, emoji) 67 }) 68 } 69 70 func TestGetEmojiImage(t *testing.T) { 71 t.Run("success", func(t *testing.T) { 72 api := &plugintest.API{} 73 defer api.AssertExpectations(t) 74 client := pluginapi.NewClient(api, &plugintest.Driver{}) 75 76 api.On("GetEmojiImage", "1").Return([]byte{1}, "jpg", nil) 77 78 content, format, err := client.Emoji.GetImage("1") 79 require.NoError(t, err) 80 contentBytes, err := io.ReadAll(content) 81 require.NoError(t, err) 82 require.Equal(t, []byte{1}, contentBytes) 83 require.Equal(t, "jpg", format) 84 }) 85 86 t.Run("failure", func(t *testing.T) { 87 api := &plugintest.API{} 88 defer api.AssertExpectations(t) 89 client := pluginapi.NewClient(api, &plugintest.Driver{}) 90 91 appErr := newAppError() 92 93 api.On("GetEmojiImage", "1").Return(nil, "", appErr) 94 95 content, format, err := client.Emoji.GetImage("1") 96 require.Equal(t, appErr, err) 97 require.Zero(t, content) 98 require.Zero(t, format) 99 }) 100 } 101 102 func TestListEmojis(t *testing.T) { 103 t.Run("success", func(t *testing.T) { 104 api := &plugintest.API{} 105 defer api.AssertExpectations(t) 106 client := pluginapi.NewClient(api, &plugintest.Driver{}) 107 108 api.On("GetEmojiList", "1", 2, 3).Return([]*model.Emoji{ 109 {Id: "4"}, 110 }, nil) 111 112 emojis, err := client.Emoji.List("1", 2, 3) 113 require.NoError(t, err) 114 require.Len(t, emojis, 1) 115 require.Equal(t, "4", emojis[0].Id) 116 }) 117 118 t.Run("failure", func(t *testing.T) { 119 api := &plugintest.API{} 120 defer api.AssertExpectations(t) 121 client := pluginapi.NewClient(api, &plugintest.Driver{}) 122 123 appErr := newAppError() 124 125 api.On("GetEmojiList", "1", 2, 3).Return(nil, appErr) 126 127 emojis, err := client.Emoji.List("1", 2, 3) 128 require.Equal(t, appErr, err) 129 require.Zero(t, emojis) 130 }) 131 }