feat: Support multiple configuration files (#389)
* Allow configuration to be distributed * catch iteration errors when collecting config files * rm unused func * Fix suffix check for config loading * test configuration loading * GATUS_CONFIG_PATH can be a file or a directory now * Add deprecation note * Fix cs Co-authored-by: TwiN <twin@linux.com> * cs fixes Co-authored-by: TwiN <twin@linux.com> * cs fixes Co-authored-by: TwiN <twin@linux.com> * cs fixes Co-authored-by: TwiN <twin@linux.com> * cs + rm useless line Co-authored-by: TwiN <twin@linux.com> * Update config/config.go Co-authored-by: TwiN <twin@linux.com>
This commit is contained in:
@ -29,19 +29,40 @@ import (
|
||||
)
|
||||
|
||||
func TestLoadFileThatDoesNotExist(t *testing.T) {
|
||||
_, err := Load("file-that-does-not-exist.yaml")
|
||||
_, err := LoadConfiguration("file-that-does-not-exist.yaml")
|
||||
if err == nil {
|
||||
t.Error("Should've returned an error, because the file specified doesn't exist")
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadDefaultConfigurationFile(t *testing.T) {
|
||||
_, err := LoadDefaultConfiguration()
|
||||
_, err := LoadConfiguration("")
|
||||
if err == nil {
|
||||
t.Error("Should've returned an error, because there's no configuration files at the default path nor the default fallback path")
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadConfigurationFile(t *testing.T) {
|
||||
_, err := LoadConfiguration("../test-conf/config.yaml")
|
||||
if nil != err {
|
||||
t.Error("Should not have returned an error, because the configuration file exists at the provided path")
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadDistributedConfiguration(t *testing.T) {
|
||||
_, err := LoadConfiguration("../test-conf/conf.d/")
|
||||
if nil != err {
|
||||
t.Error("Should not have returned an error, because configuration files exist at the provided path for distributed files")
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadCombinedConfiguration(t *testing.T) {
|
||||
_, err := LoadConfiguration("../test-conf/empty-conf.d/")
|
||||
if nil == err {
|
||||
t.Error("Should have returned an error, because the configuration directory does not contain any configuration files")
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseAndValidateConfigBytes(t *testing.T) {
|
||||
file := t.TempDir() + "/test.db"
|
||||
config, err := parseAndValidateConfigBytes([]byte(fmt.Sprintf(`
|
||||
|
Reference in New Issue
Block a user