f-19: test: ajouter des test
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
parent
3288a2a413
commit
c7d20b4124
4 changed files with 593 additions and 0 deletions
83
internal/config/agent/config_test.go
Normal file
83
internal/config/agent/config_test.go
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
package configuration
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func writeYAML(t *testing.T, content string) string {
|
||||
t.Helper()
|
||||
path := filepath.Join(t.TempDir(), "config.yml")
|
||||
if err := os.WriteFile(path, []byte(content), 0644); err != nil {
|
||||
t.Fatalf("impossible d'écrire le fichier de config : %v", err)
|
||||
}
|
||||
return path
|
||||
}
|
||||
|
||||
// --- LoadConfig ---
|
||||
|
||||
func TestLoadConfig_ValidFile(t *testing.T) {
|
||||
path := writeYAML(t, `
|
||||
database:
|
||||
path: /tmp/mydb
|
||||
`)
|
||||
cfg, err := LoadConfig(path)
|
||||
if err != nil {
|
||||
t.Fatalf("LoadConfig a échoué : %v", err)
|
||||
}
|
||||
if cfg.Database.Path != "/tmp/mydb" {
|
||||
t.Errorf("database.path attendu %q, obtenu %q", "/tmp/mydb", cfg.Database.Path)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadConfig_DefaultPath(t *testing.T) {
|
||||
// Fichier vide → viper applique la valeur par défaut
|
||||
path := writeYAML(t, "")
|
||||
cfg, err := LoadConfig(path)
|
||||
if err != nil {
|
||||
t.Fatalf("LoadConfig a échoué : %v", err)
|
||||
}
|
||||
if cfg.Database.Path != "/var/lib/two/data/" {
|
||||
t.Errorf("valeur par défaut attendue %q, obtenu %q", "/var/lib/two/data/", cfg.Database.Path)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadConfig_MissingFile_UsesDefaults(t *testing.T) {
|
||||
// Fichier inexistant : viper ignore l'erreur ReadInConfig et retourne les défauts
|
||||
cfg, err := LoadConfig("/chemin/inexistant/config.yml")
|
||||
if err != nil {
|
||||
t.Fatalf("LoadConfig devrait retourner les défauts si le fichier est absent : %v", err)
|
||||
}
|
||||
if cfg.Database.Path != "/var/lib/two/data/" {
|
||||
t.Errorf("valeur par défaut attendue, obtenu %q", cfg.Database.Path)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadConfig_PartialConfig_MissingDatabaseKey(t *testing.T) {
|
||||
// Fichier sans la clé database → valeur par défaut
|
||||
path := writeYAML(t, `
|
||||
autrekey: valeur
|
||||
`)
|
||||
cfg, err := LoadConfig(path)
|
||||
if err != nil {
|
||||
t.Fatalf("LoadConfig a échoué : %v", err)
|
||||
}
|
||||
if cfg.Database.Path != "/var/lib/two/data/" {
|
||||
t.Errorf("valeur par défaut attendue, obtenu %q", cfg.Database.Path)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadConfig_CustomPath(t *testing.T) {
|
||||
path := writeYAML(t, `
|
||||
database:
|
||||
path: /opt/two/data
|
||||
`)
|
||||
cfg, err := LoadConfig(path)
|
||||
if err != nil {
|
||||
t.Fatalf("LoadConfig a échoué : %v", err)
|
||||
}
|
||||
if cfg.Database.Path != "/opt/two/data" {
|
||||
t.Errorf("attendu %q, obtenu %q", "/opt/two/data", cfg.Database.Path)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue