MCPcopy
hub / github.com/rs/zerolog / TestResilientMultiWriter

Function TestResilientMultiWriter

writer_test.go:82–145  ·  view source on GitHub ↗

Tests that a new writer is only used if it actually works.

(t *testing.T)

Source from the content-addressed store, hash-verified

80
81// Tests that a new writer is only used if it actually works.
82func TestResilientMultiWriter(t *testing.T) {
83 tests := []struct {
84 name string
85 writers []io.Writer
86 }{
87 {
88 name: "All valid writers",
89 writers: []io.Writer{
90 mockedWriter{
91 wantErr: false,
92 },
93 mockedWriter{
94 wantErr: false,
95 },
96 },
97 },
98 {
99 name: "All invalid writers",
100 writers: []io.Writer{
101 mockedWriter{
102 wantErr: true,
103 },
104 mockedWriter{
105 wantErr: true,
106 },
107 },
108 },
109 {
110 name: "First invalid writer",
111 writers: []io.Writer{
112 mockedWriter{
113 wantErr: true,
114 },
115 mockedWriter{
116 wantErr: false,
117 },
118 },
119 },
120 {
121 name: "First valid writer",
122 writers: []io.Writer{
123 mockedWriter{
124 wantErr: false,
125 },
126 mockedWriter{
127 wantErr: true,
128 },
129 },
130 },
131 }
132
133 for _, tt := range tests {
134 writers := tt.writers
135 multiWriter := MultiLevelWriter(writers...)
136
137 logger := New(multiWriter).With().Timestamp().Logger().Level(InfoLevel)
138 logger.Info().Msg("Test msg")
139

Callers

nothing calls this directly

Calls 8

MultiLevelWriterFunction · 0.85
NewFunction · 0.85
LevelMethod · 0.80
LoggerMethod · 0.80
WithMethod · 0.80
MsgMethod · 0.80
InfoMethod · 0.65
TimestampMethod · 0.45

Tested by

no test coverage detected