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  }