Files
warmbly/internal/app/instancecheck/checks_access_test.go
T

38 lines
1.3 KiB
Go

package instancecheck
import (
"strings"
"testing"
"github.com/warmbly/warmbly/internal/config"
)
func TestRegistrationModeDescribesActivePolicy(t *testing.T) {
for _, tc := range []struct {
mode, title, message string
}{
{config.RegistrationOpen, "Public registration is open", "anyone can create an account"},
{config.RegistrationInviteOnly, "Registration is invitation-only", "public signup is closed"},
{config.RegistrationClosed, "Registration is closed", "workspace invitations are disabled"},
} {
t.Run(tc.mode, func(t *testing.T) {
f := checkRegistrationMode(t.Context(), Deps{Policy: &config.AuthPolicy{Registration: tc.mode}}, Input{})
if f == nil || f.Title != tc.title || f.Severity != SeverityInfo || !strings.Contains(f.Message, tc.message) {
t.Fatalf("incorrect registration finding: %+v", f)
}
if !strings.Contains(f.Message, "DISABLE_REGISTRATION="+tc.mode) {
t.Errorf("finding does not name the effective setting: %s", f.Message)
}
})
}
}
func TestRegistrationModeExplainsSSOOverride(t *testing.T) {
f := checkRegistrationMode(t.Context(), Deps{Policy: &config.AuthPolicy{
Registration: config.RegistrationClosed, SSOAutoProvision: true,
}}, Input{})
if f == nil || !strings.Contains(f.Message, "SSO_AUTO_PROVISION=true") {
t.Fatalf("SSO provisioning exception was not reported: %+v", f)
}
}