hunk.code_window:     static propTypes = {
           post: React.PropTypes.object.isRequired,
           currentUserId: React.PropTypes.string.isRequired,
           reactions: React.PropTypes.arrayOf(React.PropTypes.object)
       }
       render() {
           const reactionsByName = new Map();
  
hunk.labels: keep keep keep replace keep keep keep keep
hunk.after_edit:         reactions: React.PropTypes.arrayOf(React.PropTypes.object),
           emojis: React.PropTypes.object.isRequired
  
hunk.file_path: webapp/components/post_view/components/reaction_list_view.jsx
hunk.type: replace
file: // Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
  // See License.txt for license information.
  
  package api4
  
  import (
  	"testing"
  
  	"github.com/mattermost/platform/model"
  	"github.com/mattermost/platform/utils"
  )
  
  func TestCreateIncomingWebhook(t *testing.T) {
  	th := Setup().InitBasic().InitSystemAdmin()
  	defer TearDown()
  	Client := th.Client
  
  	enableIncomingHooks := utils.Cfg.ServiceSettings.EnableIncomingWebhooks
  	enableAdminOnlyHooks := utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations
  	defer func() {
  		utils.Cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks
  		utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks
  		utils.SetDefaultRolesBasedOnConfig()
  	}()
  	utils.Cfg.ServiceSettings.EnableIncomingWebhooks = true
  	*utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations = true
  	utils.SetDefaultRolesBasedOnConfig()
  
  	hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id}
  
  	rhook, resp := th.SystemAdminClient.CreateIncomingWebhook(hook)
  	CheckNoError(t, resp)
  
  	if rhook.ChannelId != hook.ChannelId {
  		t.Fatal("channel ids didn't match")
  	}
  
  	if rhook.UserId != th.SystemAdminUser.Id {
  		t.Fatal("user ids didn't match")
  	}
  
  	if rhook.TeamId != th.BasicTeam.Id {
  		t.Fatal("team ids didn't match")
  	}
  
  	hook.ChannelId = "junk"
  	_, resp = th.SystemAdminClient.CreateIncomingWebhook(hook)
  	CheckNotFoundStatus(t, resp)
  
  	hook.ChannelId = th.BasicChannel.Id
  	th.LoginTeamAdmin()
  	_, resp = Client.CreateIncomingWebhook(hook)
  	CheckNoError(t, resp)
  
  	th.LoginBasic()
  	_, resp = Client.CreateIncomingWebhook(hook)
  	CheckForbiddenStatus(t, resp)
  
  	*utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations = false
  	utils.SetDefaultRolesBasedOnConfig()
  
  	_, resp = Client.CreateIncomingWebhook(hook)
  	CheckNoError(t, resp)
  
  	utils.Cfg.ServiceSettings.EnableIncomingWebhooks = false
  	_, resp = Client.CreateIncomingWebhook(hook)
  	CheckNotImplementedStatus(t, resp)
  }
  
  func TestGetIncomingWebhooks(t *testing.T) {
  	th := Setup().InitBasic().InitSystemAdmin()
  	defer TearDown()
  	Client := th.Client
  
  	enableIncomingHooks := utils.Cfg.ServiceSettings.EnableIncomingWebhooks
  	enableAdminOnlyHooks := utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations
  	defer func() {
  		utils.Cfg.ServiceSettings.EnableIncomingWebhooks = enableIncomingHooks
  		utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations = enableAdminOnlyHooks
  		utils.SetDefaultRolesBasedOnConfig()
  	}()
  	utils.Cfg.ServiceSettings.EnableIncomingWebhooks = true
  	*utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations = true
  	utils.SetDefaultRolesBasedOnConfig()
  
  	hook := &model.IncomingWebhook{ChannelId: th.BasicChannel.Id}
  	rhook, resp := th.SystemAdminClient.CreateIncomingWebhook(hook)
  	CheckNoError(t, resp)
  
  	hooks, resp := th.SystemAdminClient.GetIncomingWebhooks(0, 1000, "")
  	CheckNoError(t, resp)
  
  	found := false
  	for _, h := range hooks {
  		if rhook.Id == h.Id {
  			found = true
  		}
  	}
  
  	if !found {
  		t.Fatal("missing hook")
  	}
  
  	hooks, resp = th.SystemAdminClient.GetIncomingWebhooks(0, 1, "")
  	CheckNoError(t, resp)
  
  	if len(hooks) != 1 {
  		t.Fatal("should only be 1")
  	}
  
  	hooks, resp = th.SystemAdminClient.GetIncomingWebhooksForTeam(th.BasicTeam.Id, 0, 1000, "")
  	CheckNoError(t, resp)
  
  	found = false
  	for _, h := range hooks {
  		if rhook.Id == h.Id {
  			found = true
  		}
  	}
  
  	if !found {
  		t.Fatal("missing hook")
  	}
  
  	hooks, resp = th.SystemAdminClient.GetIncomingWebhooksForTeam(model.NewId(), 0, 1000, "")
  	CheckNoError(t, resp)
  
  	if len(hooks) != 0 {
  		t.Fatal("no hooks should be returned")
  	}
  
  	_, resp = Client.GetIncomingWebhooks(0, 1000, "")
  	CheckForbiddenStatus(t, resp)
  
  	*utils.Cfg.ServiceSettings.EnableOnlyAdminIntegrations = false
  	utils.SetDefaultRolesBasedOnConfig()
  
  	_, resp = Client.GetIncomingWebhooksForTeam(th.BasicTeam.Id, 0, 1000, "")
  	CheckNoError(t, resp)
  
  	_, resp = Client.GetIncomingWebhooksForTeam(model.NewId(), 0, 1000, "")
  	CheckForbiddenStatus(t, resp)
  
  	_, resp = Client.GetIncomingWebhooks(0, 1000, "")
  	CheckForbiddenStatus(t, resp)
  
  	Client.Logout()
  	_, resp = Client.GetIncomingWebhooks(0, 1000, "")
  	CheckUnauthorizedStatus(t, resp)
  }
  