package config_test import ( "os" "testing" "time" "sneak.berlin/go/neoirc/internal/config" "sneak.berlin/go/neoirc/internal/globals" "sneak.berlin/go/neoirc/internal/logger" ) func newConfig(t *testing.T) *config.Config { t.Helper() globs := &globals.Globals{ Appname: "neoirc-test", Version: "test", StartTime: time.Now(), } log, err := logger.New(nil, logger.Params{Globals: globs}) if err != nil { t.Fatal(err) } cfg, err := config.New( nil, config.Params{Globals: globs, Logger: log}, ) if err != nil { t.Fatal(err) } return cfg } func TestIRCListenAddrUnsetKeepsDefault(t *testing.T) { // t.Setenv puts back whatever value was there after the test. t.Setenv("IRC_LISTEN_ADDR", "") err := os.Unsetenv("IRC_LISTEN_ADDR") if err != nil { t.Fatal(err) } const want = ":6667" cfg := newConfig(t) if cfg.IRCListenAddr != want { t.Errorf("IRCListenAddr = %q, want %q", cfg.IRCListenAddr, want) } } func TestIRCListenAddrEmptyTurnsListenerOff(t *testing.T) { t.Setenv("IRC_LISTEN_ADDR", "") cfg := newConfig(t) if cfg.IRCListenAddr != "" { t.Errorf("IRCListenAddr = %q, want empty", cfg.IRCListenAddr) } }