Skip to content

Commit 48cddd3

Browse files
mwbrookszimeg
andauthored
test: assert cmd.ExecuteContext flushes exit code to logstash (#64)
* test: assert cmd.ExecuteContext flushes exit code to logstash * refactor: remove mock implementation of logstash flushes from iostreams * test: remove default mock for FlushToLogstash --------- Co-authored-by: @zimeg <zim@o526.net>
1 parent c9a3e57 commit 48cddd3

4 files changed

Lines changed: 26 additions & 6 deletions

File tree

cmd/root_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"github.com/slackapi/slack-cli/test/testutil"
2828
"github.com/spf13/cobra"
2929
"github.com/stretchr/testify/assert"
30+
"github.com/stretchr/testify/mock"
3031
"github.com/stretchr/testify/require"
3132
)
3233

@@ -103,6 +104,7 @@ func TestExecuteContext(t *testing.T) {
103104
// Mock clients
104105
clientsMock := shared.NewClientsMock()
105106
clientsMock.AddDefaultMocks()
107+
clientsMock.EventTracker.On("FlushToLogstash", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil)
106108
clients := shared.NewClientFactory(clientsMock.MockClientFactory())
107109

108110
// Mock command
@@ -118,8 +120,8 @@ func TestExecuteContext(t *testing.T) {
118120
output := clientsMock.GetCombinedOutput()
119121

120122
// Assertions
121-
// TODO: Assert that the event tracker was called with the correct exit code
122123
require.Equal(t, tt.expectedExitCode, clients.IO.GetExitCode())
124+
clientsMock.EventTracker.AssertCalled(t, "FlushToLogstash", mock.Anything, mock.Anything, mock.Anything, tt.expectedExitCode)
123125

124126
for _, expectedOutput := range tt.expectedOutputs {
125127
require.Contains(t, output, expectedOutput)

internal/iostreams/iostreams_mock.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,5 +118,3 @@ func (m *IOStreamsMock) InitLogFile(ctx context.Context) error {
118118
func (m *IOStreamsMock) FinishLogFile(ctx context.Context) {}
119119

120120
func (m *IOStreamsMock) FlushToLogFile(ctx context.Context, prefix, errStr string) error { return nil }
121-
122-
func (m *IOStreamsMock) FlushToLogstash(ctx context.Context) error { return nil }

internal/shared/clients_mock.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ func (m *ClientsMock) AddDefaultMocks() {
7575
m.AuthInterface.AddDefaultMocks()
7676
m.Browser.AddDefaultMocks()
7777
m.Cobra.AddDefaultMocks()
78+
m.EventTracker.AddDefaultMocks()
7879
m.IO.AddDefaultMocks()
7980
m.Os.AddDefaultMocks()
8081
}
@@ -86,6 +87,7 @@ func (m *ClientsMock) MockClientFactory() func(c *ClientFactory) {
8687
clients.Browser = func() slackdeps.Browser { return m.Browser }
8788
clients.Cobra.GenMarkdownTree = m.Cobra.GenMarkdownTree
8889
clients.Config = m.Config
90+
clients.EventTracker = m.EventTracker
8991
clients.Os = m.Os
9092
clients.IO = m.IO
9193
clients.Fs = m.Fs

internal/tracking/tracking_mock.go

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,32 @@ type EventTrackerMock struct {
2727
}
2828

2929
func (m *EventTrackerMock) AddDefaultMocks() {
30-
m.On("FlushToLogstash", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(nil)
30+
m.On("SetAppEnterpriseID", mock.Anything)
31+
m.On("SetAppTeamID", mock.Anything)
32+
m.On("SetAppTemplate", mock.Anything)
33+
m.On("SetAppUserID", mock.Anything)
34+
m.On("SetAuthEnterpriseID", mock.Anything)
35+
m.On("SetAuthTeamID", mock.Anything)
36+
m.On("SetAuthUserID", mock.Anything)
37+
m.On("SetErrorCode", mock.Anything)
38+
m.On("SetErrorMessage", mock.Anything)
3139
}
3240

33-
func (m *EventTrackerMock) FlushToLogstash(ctx context.Context, cfg config.Config, io iostreams.IOStreamer, exitCode iostreams.ExitCode) error {
34-
args := m.Called(ctx)
41+
func (m *EventTrackerMock) FlushToLogstash(ctx context.Context, cfg *config.Config, io iostreams.IOStreamer, exitCode iostreams.ExitCode) error {
42+
args := m.Called(ctx, cfg, io, exitCode)
3543
return args.Error(0)
3644
}
3745

46+
func (m *EventTrackerMock) getSessionData() EventData {
47+
args := m.Called()
48+
return args.Get(0).(EventData)
49+
}
50+
51+
func (m *EventTrackerMock) cleanSessionData(data EventData) EventData {
52+
args := m.Called(data)
53+
return args.Get(0).(EventData)
54+
}
55+
3856
func (m *EventTrackerMock) SetErrorCode(code string) {
3957
m.Called(code)
4058
}

0 commit comments

Comments
 (0)