Drop one-shot tmp/axe scripts and agent i18n scratch so the Gitea tree is deployable.
75 lines
2.5 KiB
Go
75 lines
2.5 KiB
Go
package main
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestDecideMembershipPromoteSkipsA1(t *testing.T) {
|
|
t.Parallel()
|
|
mutate, reason := decideMembershipPromote(true, true)
|
|
if mutate || reason != "a1_cohort" {
|
|
t.Fatalf("a1=true must never promote (even with -confirm): mutate=%v reason=%q", mutate, reason)
|
|
}
|
|
mutate, reason = decideMembershipPromote(true, false)
|
|
if !mutate || reason != "" {
|
|
t.Fatalf("non-A1 should promote: mutate=%v reason=%q", mutate, reason)
|
|
}
|
|
mutate, reason = decideMembershipPromote(false, true)
|
|
if mutate || reason != "" {
|
|
t.Fatalf("list-only: mutate=%v reason=%q", mutate, reason)
|
|
}
|
|
}
|
|
|
|
func TestValidatePromoteTargets(t *testing.T) {
|
|
t.Parallel()
|
|
if err := validatePromoteTargets(false, "", "", ""); err != nil {
|
|
t.Fatalf("list-only: %v", err)
|
|
}
|
|
if err := validatePromoteTargets(true, "a@b.c", "", ""); err != nil {
|
|
t.Fatalf("email: %v", err)
|
|
}
|
|
if err := validatePromoteTargets(true, "", "11111111-1111-1111-1111-111111111111", ""); err != nil {
|
|
t.Fatalf("user-id: %v", err)
|
|
}
|
|
if err := validatePromoteTargets(true, "", "", "22222222-2222-2222-2222-222222222222"); err != nil {
|
|
t.Fatalf("company-id alone: %v", err)
|
|
}
|
|
err := validatePromoteTargets(true, "", "", "")
|
|
if err == nil || !strings.Contains(err.Error(), "requires -email, -user-id, or -company-id") {
|
|
t.Fatalf("expected unscoped refuse, got %v", err)
|
|
}
|
|
err = validatePromoteTargets(true, " ", " ", " ")
|
|
if err == nil || !strings.Contains(err.Error(), "requires -email, -user-id, or -company-id") {
|
|
t.Fatalf("expected blank refuse, got %v", err)
|
|
}
|
|
}
|
|
|
|
func TestGuardLiveMutation(t *testing.T) {
|
|
t.Parallel()
|
|
if err := guardLiveMutation(false, false, false, "-promote-company-admins"); err != nil {
|
|
t.Fatalf("list-only: %v", err)
|
|
}
|
|
if err := guardLiveMutation(true, true, false, "-promote-company-admins"); err != nil {
|
|
t.Fatalf("dry-run: %v", err)
|
|
}
|
|
if err := guardLiveMutation(true, false, true, "-promote-company-admins"); err != nil {
|
|
t.Fatalf("confirm: %v", err)
|
|
}
|
|
err := guardLiveMutation(true, false, false, "-promote-company-admins")
|
|
if err == nil || !strings.Contains(err.Error(), "no blind live writes") {
|
|
t.Fatalf("expected blind-write refusal, got %v", err)
|
|
}
|
|
if !strings.Contains(err.Error(), "-promote-company-admins") {
|
|
t.Fatalf("expected flag hint in error, got %v", err)
|
|
}
|
|
}
|
|
|
|
func TestGuardLiveAssignDelegates(t *testing.T) {
|
|
t.Parallel()
|
|
err := guardLiveAssign(true, false, false)
|
|
if err == nil || !strings.Contains(err.Error(), "-assign-missing-plans") {
|
|
t.Fatalf("expected assign hint, got %v", err)
|
|
}
|
|
}
|