From bf9052f75cf2fee2a0a9874ef6e9e3eda8247f06 Mon Sep 17 00:00:00 2001 From: Shashank Shekhar Date: Tue, 12 Nov 2024 16:24:06 +0530 Subject: [PATCH] NTP-4943 | updated unit tests of incident service (#462) --- Makefile | 3 +-- .../ee_monitoring_service_client.go | 10 ---------- .../ee_monitoring_service_client_interface.go | 15 ++++++++++++++- .../ee_monitoring_service_client_test.go | 4 ++-- service/incident/impl/incident_service_test.go | 4 ++++ service/incident/impl/incident_service_v2.go | 7 +++---- 6 files changed, 24 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 43c17d6..85704aa 100644 --- a/Makefile +++ b/Makefile @@ -44,7 +44,7 @@ generatemocks: cd $(CURDIR)/model/incident && minimock -i IIncidentRepository -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/pkg/monitoringService && minimock -i MonitoringServiceActions -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/pkg/monitoringService && minimock -i ServiceActions -s _mock.go -o $(CURDIR)/mocks - cd $(CURDIR)/pkg/monitoringService && minimock -i MonitoringServiceActions -s _mock.go -o $(CURDIR)/mocks + cd $(CURDIR)/pkg/monitoringService && minimock -i EEMonitoringServiceClient -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/common/util/channel && minimock -i IChannelUtil -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/service/incident_channel && minimock -i IIncidentChannelService -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/model/team && minimock -i ITeamRepository -s _mock.go -o $(CURDIR)/mocks @@ -55,7 +55,6 @@ generatemocks: cd $(CURDIR)/service/teamService && minimock -i ITeamServiceV2 -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/model/user && minimock -i IUserRepositoryInterface -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/repository/tag && minimock -i ITagRepository -s _mock.go -o $(CURDIR)/mocks - cd $(CURDIR)/pkg/monitoringService && minimock -i MonitoringServiceActions -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/service/krakatoa && minimock -i IKrakatoaService -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/pkg/socketModeClient && minimock -i ISocketModeClientWrapper -s _mock.go -o $(CURDIR)/mocks cd $(CURDIR)/pkg/maverick && minimock -i IMaverickClient -s _mock.go -o $(CURDIR)/mocks diff --git a/pkg/monitoringService/ee_monitoring_service_client.go b/pkg/monitoringService/ee_monitoring_service_client.go index 9024f5f..2ac1ae6 100644 --- a/pkg/monitoringService/ee_monitoring_service_client.go +++ b/pkg/monitoringService/ee_monitoring_service_client.go @@ -5,7 +5,6 @@ import ( "encoding/json" "errors" "fmt" - "github.com/spf13/viper" "go.uber.org/zap" "houston/contracts" "houston/logger" @@ -21,15 +20,6 @@ type EEMonitoringServiceClientImpl struct { WebhookAPIPath string } -func NewEEMonitoringServiceActionsImpl(client rest.HttpRestClient) *EEMonitoringServiceClientImpl { - return &EEMonitoringServiceClientImpl{ - Client: client, - BaseURL: viper.GetString("EE_MONITORING_SERVICE_BASEURL"), - DefaultTimeout: viper.GetDuration("DEFAULT_EE_MONITORING_SERVICE_TIMEOUT"), - WebhookAPIPath: viper.GetString("EE_MONITORING_SERVICE_WEBHOOK_API_PATH"), - } -} - func (client *EEMonitoringServiceClientImpl) TriggerSeverityUpdateWebhook( incidentId uint, triggerredBy string, diff --git a/pkg/monitoringService/ee_monitoring_service_client_interface.go b/pkg/monitoringService/ee_monitoring_service_client_interface.go index 7d9cad1..31cad65 100644 --- a/pkg/monitoringService/ee_monitoring_service_client_interface.go +++ b/pkg/monitoringService/ee_monitoring_service_client_interface.go @@ -1,9 +1,22 @@ package monitoringService -import "houston/contracts" +import ( + "github.com/spf13/viper" + "houston/contracts" + "houston/pkg/rest" +) type EEMonitoringServiceClient interface { TriggerSeverityUpdateWebhook( incidentId uint, triggerredBy string, requestId string, oldSeverity, newSeverity contracts.SeverityInfo, ) error } + +func NewEEMonitoringServiceClient(client rest.HttpRestClient) EEMonitoringServiceClient { + return &EEMonitoringServiceClientImpl{ + Client: client, + BaseURL: viper.GetString("EE_MONITORING_SERVICE_BASEURL"), + DefaultTimeout: viper.GetDuration("DEFAULT_EE_MONITORING_SERVICE_TIMEOUT"), + WebhookAPIPath: viper.GetString("EE_MONITORING_SERVICE_WEBHOOK_API_PATH"), + } +} diff --git a/pkg/monitoringService/ee_monitoring_service_client_test.go b/pkg/monitoringService/ee_monitoring_service_client_test.go index e59c97d..f16704b 100644 --- a/pkg/monitoringService/ee_monitoring_service_client_test.go +++ b/pkg/monitoringService/ee_monitoring_service_client_test.go @@ -52,7 +52,7 @@ func (suite *EEMonitoringServiceSuite) Test_TriggerWebhook_ErrorResponseCase() { responseChannel := make(chan service.MonitoringServiceClientResponse) defer close(responseChannel) - err := NewEEMonitoringServiceActionsImpl(restClient).TriggerSeverityUpdateWebhook( + err := NewEEMonitoringServiceClient(restClient).TriggerSeverityUpdateWebhook( 1, "test", requestId, getOldSeverity(), getNewSeverity(), ) suite.Error(err) @@ -84,7 +84,7 @@ func (suite *EEMonitoringServiceSuite) Test_TriggerWebhook_SuccessCase() { responseChannel := make(chan service.MonitoringServiceClientResponse) defer close(responseChannel) - err := NewEEMonitoringServiceActionsImpl(restClient).TriggerSeverityUpdateWebhook( + err := NewEEMonitoringServiceClient(restClient).TriggerSeverityUpdateWebhook( 1, "test", requestId, getOldSeverity(), getNewSeverity(), ) diff --git a/service/incident/impl/incident_service_test.go b/service/incident/impl/incident_service_test.go index 3b944ae..ab79b82 100644 --- a/service/incident/impl/incident_service_test.go +++ b/service/incident/impl/incident_service_test.go @@ -34,6 +34,7 @@ type IncidentServiceSuite struct { teamUserService mocks.ITeamUserServiceMock severityRepository mocks.ISeverityRepositoryMock krakatoaService mocks.IKrakatoaServiceMock + eeMonitoringService mocks.EEMonitoringServiceClientMock incidentChannelService mocks.IIncidentChannelServiceMock incidentJiraService mocks.IncidentJiraServiceMock tagService mocks.ITagServiceMock @@ -109,6 +110,7 @@ func (suite *IncidentServiceSuite) Test_UpdateIncident_Success() { suite.incidentRepository.UpdateIncidentMock.When(mockIncident). Then(nil) + suite.eeMonitoringService.TriggerSeverityUpdateWebhookMock.Return(nil) suite.incidentRepository.UpdateIncidentWithJustificationMock.When(mockIncident, "").Then(nil) suite.slackService.PostMessageByChannelIDMock.Return("", nil) @@ -577,6 +579,7 @@ func (suite *IncidentServiceSuite) SetupTest() { suite.slackService = *mocks.NewISlackServiceMock(suite.T()) suite.incidentRepository = *mocks.NewIIncidentRepositoryMock(suite.T()) suite.krakatoaService = *mocks.NewIKrakatoaServiceMock(suite.T()) + suite.eeMonitoringService = *mocks.NewEEMonitoringServiceClientMock(suite.T()) suite.severityRepository = *mocks.NewISeverityRepositoryMock(suite.T()) suite.teamRepository = *mocks.NewITeamRepositoryMock(suite.T()) suite.userRepository = *mocks.NewIUserRepositoryMock(suite.T()) @@ -620,6 +623,7 @@ func (suite *IncidentServiceSuite) SetupTest() { incidentStatusService: &suite.incidentStatusService, incidentTeamService: &suite.incidentTeamService, incidentTeamTagValueService: &suite.incidentTeamTagValueService, + eeMonitoringServiceClient: &suite.eeMonitoringService, } suite.mockDirectory = "test_file" diff --git a/service/incident/impl/incident_service_v2.go b/service/incident/impl/incident_service_v2.go index e475190..5d17217 100644 --- a/service/incident/impl/incident_service_v2.go +++ b/service/incident/impl/incident_service_v2.go @@ -108,7 +108,7 @@ type IncidentServiceV2 struct { incidentTeamService incidentTeam.IncidentTeamService incidentTeamTagValueService incidentTeamTagValue.IncidentTeamTagValueService logService *logService.LogService - eeMonitoringServiceClient *monitoringService.EEMonitoringServiceClientImpl + eeMonitoringServiceClient monitoringService.EEMonitoringServiceClient } /* @@ -172,7 +172,7 @@ func NewIncidentServiceV2(db *gorm.DB) *IncidentServiceV2 { incidentTeamTagValueRepo.NewIncidentTeamTagValueRepository(db), ), logService: logService.NewLogService(nil, db), - eeMonitoringServiceClient: monitoringService.NewEEMonitoringServiceActionsImpl(rest.NewHttpRestClient()), + eeMonitoringServiceClient: monitoringService.NewEEMonitoringServiceClient(rest.NewHttpRestClient()), } driveActions, _ := googleDrive.NewGoogleDriveActions() incidentService.rcaService = rcaServiceImpl.NewRcaService( @@ -1532,11 +1532,10 @@ func (i *IncidentServiceV2) eeMonitoringServiceWebhookCall( incidentEntity *incident.IncidentEntity, oldSeverity contracts.SeverityInfo, ) { task := func(ctx context.Context) error { - entities, err := i.incidentRepository.GetIncidentsByIds([]uint{incidentEntity.ID}) + updatedIncident, err := i.incidentRepository.FindIncidentById(incidentEntity.ID) if err != nil { return errors.New(fmt.Sprintf("error in fetching incident by id: %+v", err)) } - updatedIncident := entities[0] newSeverity := contracts.SeverityInfo{Name: updatedIncident.Severity.Name, ID: updatedIncident.SeverityId} err = i.eeMonitoringServiceClient.TriggerSeverityUpdateWebhook( incidentEntity.ID, incidentEntity.UpdatedBy, uuid.NewString(), oldSeverity, newSeverity,