1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
package container_test
import (
"log/slog"
"testing"
"time"
"github.com/roadrunner-server/config/v5"
"github.com/roadrunner-server/roadrunner/v2024/container"
"github.com/stretchr/testify/assert"
)
func TestNewConfig_SuccessfulReading(t *testing.T) {
c, err := container.NewConfig("test/endure_ok.yaml")
assert.NoError(t, err)
assert.NotNil(t, c)
ll, err := container.ParseLogLevel(c.LogLevel)
assert.NoError(t, err)
assert.Equal(t, time.Second*10, c.GracePeriod)
assert.True(t, c.PrintGraph)
assert.Equal(t, slog.LevelWarn, ll.Level())
}
func TestNewConfig_WithoutEndureKey(t *testing.T) {
cfgPlugin := &config.Plugin{Type: "yaml", ReadInCfg: []byte{}}
assert.NoError(t, cfgPlugin.Init())
c, err := container.NewConfig("test/without_endure_ok.yaml")
assert.NoError(t, err)
assert.NotNil(t, c)
ll, err := container.ParseLogLevel(c.LogLevel)
assert.NoError(t, err)
assert.Equal(t, time.Second*30, c.GracePeriod)
assert.False(t, c.PrintGraph)
assert.Equal(t, slog.LevelError, ll.Level())
}
func TestNewConfig_LoggingLevels(t *testing.T) {
for _, tt := range []struct {
path string
giveLevel string
wantLevel slog.Leveler
wantError bool
}{
{path: "test/endure_ok_debug.yaml", giveLevel: "debug", wantLevel: slog.LevelDebug},
{path: "test/endure_ok_info.yaml", giveLevel: "info", wantLevel: slog.LevelInfo},
{path: "test/endure_ok_warn.yaml", giveLevel: "warn", wantLevel: slog.LevelWarn},
{path: "test/endure_ok_error.yaml", giveLevel: "error", wantLevel: slog.LevelError},
{path: "test/endure_ok_foobar.yaml", giveLevel: "foobar", wantError: true},
} {
t.Run(tt.giveLevel, func(t *testing.T) {
cfgPlugin := &config.Plugin{Type: "yaml", ReadInCfg: []byte("endure:\n log_level: " + tt.giveLevel)}
assert.NoError(t, cfgPlugin.Init())
c, err := container.NewConfig(tt.path)
assert.NotNil(t, c)
ll, err2 := container.ParseLogLevel(c.LogLevel)
if tt.wantError {
assert.Error(t, err2)
assert.Contains(t, err2.Error(), "unknown log level")
} else {
assert.NoError(t, err)
assert.NoError(t, err2)
assert.Equal(t, tt.wantLevel, ll.Level())
}
})
}
}
|