Files
descrybe/apps/api/cmd/migrator/company_plans_repair_test.go
T

76 lines
2.0 KiB
Go
Raw Normal View History

package main
import (
"context"
"strings"
"testing"
"github.com/descrybe/descrybe-v2/apps/api/internal/billing"
)
func TestDecideAssignMissingPlanSkipsA1(t *testing.T) {
t.Parallel()
mutate, reason := decideAssignMissingPlan(true, billing.A1LegacyCompanyID, "Anything")
if mutate || reason != "a1_cohort" {
t.Fatalf("A1 legacy id must never assign (even with -confirm): mutate=%v reason=%q", mutate, reason)
}
mutate, reason = decideAssignMissingPlan(true, "other-legacy-id", "A1 Slovenija")
if !mutate || reason != "" {
t.Fatalf("display name alone must not skip assign: mutate=%v reason=%q", mutate, reason)
}
mutate, reason = decideAssignMissingPlan(false, billing.A1LegacyCompanyID, "A1")
if mutate || reason != "" {
t.Fatalf("list-only: mutate=%v reason=%q", mutate, reason)
}
}
func TestResolveFallbackPlanIDEmpty(t *testing.T) {
t.Parallel()
id, err := resolveFallbackPlanID(context.Background(), nil, " ")
if err != nil {
t.Fatal(err)
}
if id != 0 {
t.Fatalf("got %d, want 0", id)
}
}
func TestNormalizeAssignPlanName(t *testing.T) {
t.Parallel()
got, err := normalizeAssignPlanName(" Free ", true)
if err != nil {
t.Fatal(err)
}
if got != "Free" {
t.Fatalf("got %q", got)
}
_, err = normalizeAssignPlanName(" ", true)
if err == nil || !strings.Contains(err.Error(), "-plan-name") {
t.Fatalf("expected plan-name error, got %v", err)
}
got, err = normalizeAssignPlanName(" ", false)
if err != nil {
t.Fatal(err)
}
if got != "" {
t.Fatalf("list-only allows empty plan name, got %q", got)
}
}
func TestGuardLiveAssign(t *testing.T) {
t.Parallel()
if err := guardLiveAssign(false, false, false); err != nil {
t.Fatalf("list-only: %v", err)
}
if err := guardLiveAssign(true, true, false); err != nil {
t.Fatalf("dry-run: %v", err)
}
if err := guardLiveAssign(true, false, true); err != nil {
t.Fatalf("confirm: %v", err)
}
err := guardLiveAssign(true, false, false)
if err == nil || !strings.Contains(err.Error(), "no blind live writes") {
t.Fatalf("expected blind-assign refusal, got %v", err)
}
}