Skip to content

Commit

Permalink
Add unit-test for partial startup
Browse files Browse the repository at this point in the history
  • Loading branch information
srebhan committed Mar 11, 2024
1 parent d505567 commit 6875c01
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions models/running_output_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -700,6 +700,49 @@ func TestUntypedtartupBehaviorIgnore(t *testing.T) {
}
}

func TestPartiallyStarted(t *testing.T) {
serr := &internal.StartupError{
Err: errors.New("partial err"),
Retry: true,
Partial: true,
}
mo := &mockOutput{
startupErrorCount: 2,
startupError: serr,
}
ro := NewRunningOutput(
mo,
&OutputConfig{
Filter: Filter{},
Name: "test_name",
Alias: "test_alias",
StartupErrorBehavior: "retry",
},
5, 10,
)
require.NoError(t, ro.Init())

// For retry, Connect() should succeed even though there is an error but
// should return an error on Write() until we successfully connect.
require.NoError(t, ro.Connect(), serr)
require.False(t, ro.started)

ro.AddMetric(testutil.TestMetric(1))
require.NoError(t, ro.Write())
require.False(t, ro.started)
require.Equal(t, 1, mo.writes)

ro.AddMetric(testutil.TestMetric(2))
require.NoError(t, ro.Write())
require.True(t, ro.started)
require.Equal(t, 2, mo.writes)

ro.AddMetric(testutil.TestMetric(3))
require.NoError(t, ro.Write())
require.True(t, ro.started)
require.Equal(t, 3, mo.writes)
}

type mockOutput struct {
sync.Mutex

Expand Down

0 comments on commit 6875c01

Please sign in to comment.