Merge Go frontend (apiserver + xcecli) into meson build
This commit is contained in:
parent
43dc12a36c
commit
c9dc8c4676
205 changed files with 30793 additions and 328 deletions
133
src/frontend/apiserver/backend/auth/config_file_test.go
Normal file
133
src/frontend/apiserver/backend/auth/config_file_test.go
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
package auth
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestConfigFileProvider_Authenticate(t *testing.T) {
|
||||
yaml := `
|
||||
provider: config_file
|
||||
config_file:
|
||||
users:
|
||||
- username: admin
|
||||
password: secret
|
||||
roles: [cluster_admin]
|
||||
- username: viewer
|
||||
password: pass
|
||||
roles: [basic_user]
|
||||
`
|
||||
|
||||
provider, err := NewConfigFileProvider([]byte(yaml))
|
||||
if err != nil {
|
||||
t.Fatalf("NewConfigFileProvider: %v", err)
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
user string
|
||||
pass string
|
||||
wantErr bool
|
||||
}{
|
||||
{"valid admin", "admin", "secret", false},
|
||||
{"valid viewer", "viewer", "pass", false},
|
||||
{"wrong password", "admin", "wrong", true},
|
||||
{"unknown user", "nobody", "pass", true},
|
||||
{"empty user", "", "pass", true},
|
||||
{"empty password", "admin", "", true},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
err := provider.Authenticate(tt.user, tt.pass)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("Authenticate() error = %v, wantErr %v", err, tt.wantErr)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigFileProvider_GetUserRoles(t *testing.T) {
|
||||
yaml := `
|
||||
provider: config_file
|
||||
config_file:
|
||||
users:
|
||||
- username: admin
|
||||
password: admin
|
||||
roles: [cluster_admin, operator]
|
||||
- username: guest
|
||||
password: guest
|
||||
roles: []
|
||||
`
|
||||
|
||||
provider, err := NewConfigFileProvider([]byte(yaml))
|
||||
if err != nil {
|
||||
t.Fatalf("NewConfigFileProvider: %v", err)
|
||||
}
|
||||
|
||||
if roles := provider.GetUserRoles("admin"); len(roles) != 2 {
|
||||
t.Errorf("admin roles = %v, want 2", roles)
|
||||
}
|
||||
if roles := provider.GetUserRoles("guest"); len(roles) != 0 {
|
||||
t.Errorf("guest roles = %v, want empty", roles)
|
||||
}
|
||||
if roles := provider.GetUserRoles("unknown"); roles != nil {
|
||||
t.Errorf("unknown roles = %v, want nil", roles)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigFileProvider_Name(t *testing.T) {
|
||||
p := &ConfigFileProvider{}
|
||||
if got := p.Name(); got != "config_file" {
|
||||
t.Errorf("Name() = %q, want %q", got, "config_file")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewConfigFileProvider_Errors(t *testing.T) {
|
||||
t.Run("invalid yaml", func(t *testing.T) {
|
||||
_, err := NewConfigFileProvider([]byte("{{invalid"))
|
||||
if err == nil {
|
||||
t.Error("expected error for invalid yaml")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("no users", func(t *testing.T) {
|
||||
_, err := NewConfigFileProvider([]byte("provider: config_file\nconfig_file:\n users: []"))
|
||||
if err == nil {
|
||||
t.Error("expected error for empty users list")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("empty username", func(t *testing.T) {
|
||||
_, err := NewConfigFileProvider([]byte("provider: config_file\nconfig_file:\n users:\n - username: ''\n password: x"))
|
||||
if err == nil {
|
||||
t.Error("expected error for empty username")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestPAMProvider_Name(t *testing.T) {
|
||||
p := &PAMProvider{}
|
||||
if got := p.Name(); got != "pam" {
|
||||
t.Errorf("Name() = %q, want %q", got, "pam")
|
||||
}
|
||||
}
|
||||
|
||||
func TestLDAPProvider_Name(t *testing.T) {
|
||||
p := &LDAPProvider{}
|
||||
if got := p.Name(); got != "ldap" {
|
||||
t.Errorf("Name() = %q, want %q", got, "ldap")
|
||||
}
|
||||
if err := p.Authenticate("u", "p"); err == nil {
|
||||
t.Error("expected not-implemented error")
|
||||
}
|
||||
}
|
||||
|
||||
func TestOAuth2Provider_Name(t *testing.T) {
|
||||
p := &OAuth2Provider{}
|
||||
if got := p.Name(); got != "oauth2" {
|
||||
t.Errorf("Name() = %q, want %q", got, "oauth2")
|
||||
}
|
||||
if err := p.Authenticate("u", "p"); err == nil {
|
||||
t.Error("expected not-implemented error")
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue