| 148 | } |
| 149 | |
| 150 | func TestWriteWithAllLevels(t *testing.T) { |
| 151 | wr := NewJournalDWriter() |
| 152 | |
| 153 | // Save original FatalExitFunc |
| 154 | oldFatalExitFunc := zerolog.FatalExitFunc |
| 155 | defer func() { zerolog.FatalExitFunc = oldFatalExitFunc }() |
| 156 | |
| 157 | // Set FatalExitFunc to prevent actual exit |
| 158 | zerolog.FatalExitFunc = func() {} |
| 159 | |
| 160 | log := zerolog.New(wr) |
| 161 | |
| 162 | // Test all zerolog levels to cover levelToJPrio switch cases |
| 163 | log.Trace().Msg("Trace level") |
| 164 | log.Debug().Msg("Debug level") |
| 165 | log.Info().Msg("Info level") |
| 166 | log.Warn().Msg("Warn level") |
| 167 | log.Error().Msg("Error level") |
| 168 | log.Log().Msg("No level") |
| 169 | |
| 170 | // For Fatal, it will call FatalExitFunc instead of exiting |
| 171 | log.Fatal().Msg("Fatal level") |
| 172 | |
| 173 | // For Panic, use recover to catch the panic, do last because it will stop of this test execution |
| 174 | defer func() { |
| 175 | if r := recover(); r == nil { |
| 176 | t.Error("Expected panic from Panic level") |
| 177 | } |
| 178 | }() |
| 179 | log.Panic().Msg("Panic level") |
| 180 | |
| 181 | } |
| 182 | |
| 183 | func TestWriteOutputs(t *testing.T) { |
| 184 | mock := &mockSend{} |