forked from baron/baron-sso
63 lines
1.6 KiB
Go
63 lines
1.6 KiB
Go
package main
|
|
|
|
import "testing"
|
|
|
|
func TestResolveCreateSuperAdminConfigUsesEnvDefaults(t *testing.T) {
|
|
t.Setenv("ADMIN_EMAIL", "admin@example.com")
|
|
t.Setenv("ADMIN_PASSWORD", "Password!123")
|
|
t.Setenv("ADMIN_NAME", "Env Admin")
|
|
|
|
config, err := resolveCreateSuperAdminConfig([]string{})
|
|
if err != nil {
|
|
t.Fatalf("resolveCreateSuperAdminConfig returned error: %v", err)
|
|
}
|
|
|
|
if config.Email != "admin@example.com" {
|
|
t.Fatalf("email = %q", config.Email)
|
|
}
|
|
if config.Password != "Password!123" {
|
|
t.Fatal("password was not read from ADMIN_PASSWORD")
|
|
}
|
|
if config.Name != "Env Admin" {
|
|
t.Fatalf("name = %q", config.Name)
|
|
}
|
|
}
|
|
|
|
func TestResolveCreateSuperAdminConfigAllowsFlagOverrides(t *testing.T) {
|
|
t.Setenv("ADMIN_EMAIL", "admin@example.com")
|
|
t.Setenv("ADMIN_PASSWORD", "Password!123")
|
|
t.Setenv("ADMIN_NAME", "Env Admin")
|
|
|
|
config, err := resolveCreateSuperAdminConfig([]string{
|
|
"--email", "flag@example.com",
|
|
"--password", "FlagPassword!123",
|
|
"--name", "Flag Admin",
|
|
"--update-password",
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("resolveCreateSuperAdminConfig returned error: %v", err)
|
|
}
|
|
|
|
if config.Email != "flag@example.com" {
|
|
t.Fatalf("email = %q", config.Email)
|
|
}
|
|
if config.Password != "FlagPassword!123" {
|
|
t.Fatal("password flag was not used")
|
|
}
|
|
if config.Name != "Flag Admin" {
|
|
t.Fatalf("name = %q", config.Name)
|
|
}
|
|
if !config.UpdatePassword {
|
|
t.Fatal("update password flag was not set")
|
|
}
|
|
}
|
|
|
|
func TestResolveCreateSuperAdminConfigRequiresEmailAndPassword(t *testing.T) {
|
|
t.Setenv("ADMIN_EMAIL", "")
|
|
t.Setenv("ADMIN_PASSWORD", "")
|
|
|
|
if _, err := resolveCreateSuperAdminConfig([]string{}); err == nil {
|
|
t.Fatal("expected error")
|
|
}
|
|
}
|