Skip to content

Commit 9bc2960

Browse files
anisaoshaficlaude
andcommitted
Test NewPlainSinkSplit event routing behavior
Verify that ErrorEvent is routed to errOut and all other events go to out, and that nil writer arguments fall back safely without panicking. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 270758b commit 9bc2960

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

internal/output/plain_sink_test.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,32 @@ func TestPlainSink_TableWidth(t *testing.T) {
286286
})
287287
}
288288

289+
func TestPlainSinkSplit_RoutesErrorEventToErrOut(t *testing.T) {
290+
var out, errOut bytes.Buffer
291+
sink := NewPlainSinkSplit(&out, &errOut)
292+
293+
sink.Emit(ErrorEvent{Title: "Something failed"})
294+
295+
assert.Empty(t, out.String(), "ErrorEvent should not go to out")
296+
assert.Contains(t, errOut.String(), "Something failed")
297+
}
298+
299+
func TestPlainSinkSplit_RoutesOtherEventsToOut(t *testing.T) {
300+
var out, errOut bytes.Buffer
301+
sink := NewPlainSinkSplit(&out, &errOut)
302+
303+
sink.Emit(MessageEvent{Severity: SeverityInfo, Text: "hello"})
304+
305+
assert.Contains(t, out.String(), "hello")
306+
assert.Empty(t, errOut.String(), "MessageEvent should not go to errOut")
307+
}
308+
309+
func TestPlainSinkSplit_NilWritersFallback(t *testing.T) {
310+
// nil writers should not panic (fallback to os.Stdout/os.Stderr)
311+
sink := NewPlainSinkSplit(nil, nil)
312+
assert.NotNil(t, sink)
313+
}
314+
289315
func TestPlainSink_ErrReturnsNilOnSuccess(t *testing.T) {
290316
var out bytes.Buffer
291317
sink := NewPlainSink(&out)

0 commit comments

Comments
 (0)