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:
parent
2db0a64bd4
commit
4a4489e2be
1 changed files with 73 additions and 0 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue