1
0
Fork 0
mirror of https://github.com/eosswedenorg/thalos synced 2026-06-16 04:24:56 +02:00

internal/config/builder_test.go: adding test for config with flags

This commit is contained in:
Henrik Hautakoski 2024-02-18 16:04:02 +01:00
parent 2db0a64bd4
commit 4a4489e2be

View file

@ -75,6 +75,79 @@ redis:
require.Equal(t, &expected, cfg)
}
func TestBuilder_ConfigWithFlags(t *testing.T) {
expected := Config{
Name: "ship-reader-1",
Api: "https://api.example.com",
MessageCodec: "msgpack",
Log: log.Config{
Filename: "mylog.log",
Directory: "/var/log",
MaxFileSize: 200,
MaxTime: 30 * time.Minute,
},
Ship: ShipConfig{
Url: "127.0.0.1:8089",
StartBlockNum: 23671836,
EndBlockNum: 23872222,
IrreversibleOnly: true,
MaxMessagesInFlight: 1337,
},
Telegram: TelegramConfig{
Id: "110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw",
Channel: -123456789,
},
Redis: RedisConfig{
Addr: "localhost:6379",
User: "userfromcli",
Password: "passwd",
DB: 4,
Prefix: "some::ship",
},
}
builder := NewBuilder()
builder.SetSource(bytes.NewBuffer([]byte(`
name: "ship-reader-1"
api: "http://127.0.0.1:8080"
message_codec: "mojibake"
log:
filename: some_file.log
directory: /path/to/whatever
maxtime: 30m
maxfilesize: 200b
ship:
url: "127.0.0.1:8089"
irreversible_only: true
max_messages_in_flight: 1337
start_block_num: 23671836
end_block_num: 23872222
telegram:
id: "110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw"
channel: -123456789
redis:
addr: "localhost:6379"
user: "myuser"
password: "passwd"
db: 4
prefix: "some::ship"
`)))
flags := GetFlags()
require.NoError(t, flags.Set("url", "https://api.example.com"))
require.NoError(t, flags.Set("codec", "msgpack"))
require.NoError(t, flags.Set("log", "/var/log/mylog.log"))
require.NoError(t, flags.Set("redis-user", "userfromcli"))
builder.SetFlags(flags)
cfg, err := builder.Build()
require.NoError(t, err)
require.Equal(t, &expected, cfg)
}
func TestBuilder_NilSource(t *testing.T) {
cfg, err := NewBuilder().Build()
require.Nil(t, cfg)