Files
ANewDawn/settings_test.go
2024-01-22 20:10:29 +01:00

76 lines
2.3 KiB
Go

package main
import (
"os"
"reflect"
"testing"
)
// Returns a Config object with DiscordToken set when DISCORD_TOKEN environment variable is set
func TestLoadFromEnvironment_DiscordTokenSet(t *testing.T) {
os.Setenv("DISCORD_TOKEN", "test_token")
os.Setenv("OPENAI_TOKEN", "test_token2")
defer os.Unsetenv("DISCORD_TOKEN")
defer os.Unsetenv("OPENAI_TOKEN")
config, err := loadFromEnvironment()
if err != nil {
t.Errorf("Expected no error, but got: %v", err)
}
expected := &Config{
DiscordToken: "test_token",
OpenAIToken: "test_token2",
}
if !reflect.DeepEqual(config, expected) {
t.Errorf("Expected config to be %v, but got %v", expected, config)
}
}
// Returns an error when DISCORD_TOKEN environment variable is empty
func TestLoadFromEnvironment_EmptyDiscordToken(t *testing.T) {
os.Setenv("DISCORD_TOKEN", "")
defer os.Unsetenv("DISCORD_TOKEN")
_, err := loadFromEnvironment()
if err == nil {
t.Error("Expected an error, but got nil")
}
expected := "DISCORD_TOKEN environment variable not set or empty. Also tried reading from settings.json file"
if err.Error() != expected {
t.Errorf("Expected error message to be '%s', but got '%s'", expected, err.Error())
}
}
// Returns an error when DISCORD_TOKEN environment variable is not set and settings.json file is not present
func TestLoadFromEnvironment_NoDiscordTokenNoSettingsFile(t *testing.T) {
os.Unsetenv("DISCORD_TOKEN")
_, err := loadFromEnvironment()
if err == nil {
t.Error("Expected an error, but got nil")
}
expected := "DISCORD_TOKEN environment variable not set or empty. Also tried reading from settings.json file"
if err.Error() != expected {
t.Errorf("Expected error message to be '%s', but got '%s'", expected, err.Error())
}
}
// Returns an error when settings.json file is present but DiscordToken is not set
func TestLoadFromEnvironment_SettingsFileNoDiscordToken(t *testing.T) {
os.Setenv("DISCORD_TOKEN", "")
defer os.Unsetenv("DISCORD_TOKEN")
_, err := loadFromEnvironment()
if err == nil {
t.Error("Expected an error, but got nil")
}
expected := "DISCORD_TOKEN environment variable not set or empty. Also tried reading from settings.json file"
if err.Error() != expected {
t.Errorf("Expected error message to be '%s', but got '%s'", expected, err.Error())
}
}