mirror of
https://github.com/Dvorinka/Bookra.git
synced 2026-06-03 20:13:00 +00:00
76 lines
1.5 KiB
Go
76 lines
1.5 KiB
Go
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)
|
|
}
|
|
}
|