MCPcopy
hub / github.com/uber-go/zap / TestLevelAsFlagValue

Function TestLevelAsFlagValue

zapcore/level_test.go:186–210  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

184}
185
186func TestLevelAsFlagValue(t *testing.T) {
187 var (
188 buf bytes.Buffer
189 lvl Level
190 )
191 fs := flag.NewFlagSet("levelTest", flag.ContinueOnError)
192 fs.SetOutput(&buf)
193 fs.Var(&lvl, "level", "log level")
194
195 for _, expected := range []Level{DebugLevel, InfoLevel, WarnLevel, ErrorLevel, DPanicLevel, PanicLevel, FatalLevel} {
196 assert.NoError(t, fs.Parse([]string{"-level", expected.String()}))
197 assert.Equal(t, expected, lvl, "Unexpected level after parsing flag.")
198 assert.Equal(t, expected, lvl.Get(), "Unexpected output using flag.Getter API.")
199 assert.Empty(t, buf.String(), "Unexpected error output parsing level flag.")
200 buf.Reset()
201 }
202
203 assert.Error(t, fs.Parse([]string{"-level", "nope"}))
204 assert.Equal(
205 t,
206 `invalid value "nope" for flag -level: unrecognized level: "nope"`,
207 strings.Split(buf.String(), "\n")[0], // second line is help message
208 "Unexpected error output from invalid flag input.",
209 )
210}
211
212// enablerWithCustomLevel is a LevelEnabler that implements a custom Level
213// method.

Callers

nothing calls this directly

Calls 4

ResetMethod · 0.80
StringMethod · 0.45
GetMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected