package config import ( "os" "testing" ) func TestStripeReadinessHelpers(t *testing.T) { cfg := &Config{ StripeSecretKey: "sk_test_123", StripePriceIDs: map[string]string{ "pro:czk": "price_123", }, } if !cfg.StripeSecretConfigured() { t.Fatal("expected secret configured") } if cfg.StripeWebhookConfigured() { t.Fatal("expected webhook not configured") } if !cfg.StripeHasAnyPriceConfigured() { t.Fatal("expected prices configured") } if !cfg.StripeCheckoutReady() { t.Fatal("expected checkout ready") } } func TestStripeCheckoutReadyRequiresSecretAndPrice(t *testing.T) { cfg := &Config{ StripePriceIDs: map[string]string{ "pro:czk": "price_123", }, } if cfg.StripeCheckoutReady() { t.Fatal("expected checkout not ready without secret") } cfg.StripeSecretKey = "sk_test_123" cfg.StripePriceIDs = map[string]string{} if cfg.StripeCheckoutReady() { t.Fatal("expected checkout not ready without price") } } func TestLoadDefaultsAuthServicePortTo8081(t *testing.T) { originals := map[string]string{} for _, key := range []string{ "PORT", "DATABASE_URL", } { originals[key] = os.Getenv(key) } t.Cleanup(func() { for key, value := range originals { if value == "" { _ = os.Unsetenv(key) continue } _ = os.Setenv(key, value) } }) _ = os.Unsetenv("PORT") _ = os.Setenv("DATABASE_URL", "postgresql://localhost/bookra") cfg, err := Load() if err != nil { t.Fatalf("load config: %v", err) } if cfg.Port != "8081" { t.Fatalf("expected default port 8081, got %s", cfg.Port) } }