| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- package controller
- import (
- "testing"
- "github.com/QuantumNous/new-api/setting"
- "github.com/QuantumNous/new-api/setting/operation_setting"
- "github.com/stretchr/testify/require"
- )
- func TestStripeWebhookEnabledRequiresTopUpAndWebhookConfig(t *testing.T) {
- originalAPISecret := setting.StripeApiSecret
- originalWebhookSecret := setting.StripeWebhookSecret
- originalPriceID := setting.StripePriceId
- t.Cleanup(func() {
- setting.StripeApiSecret = originalAPISecret
- setting.StripeWebhookSecret = originalWebhookSecret
- setting.StripePriceId = originalPriceID
- })
- setting.StripeWebhookSecret = ""
- setting.StripeApiSecret = "sk_test_123"
- setting.StripePriceId = "price_123"
- require.False(t, isStripeWebhookEnabled())
- setting.StripeWebhookSecret = "whsec_test"
- require.True(t, isStripeWebhookEnabled())
- setting.StripePriceId = ""
- require.False(t, isStripeWebhookEnabled())
- }
- func TestCreemWebhookEnabledRequiresTopUpAndWebhookConfig(t *testing.T) {
- originalAPIKey := setting.CreemApiKey
- originalProducts := setting.CreemProducts
- originalWebhookSecret := setting.CreemWebhookSecret
- t.Cleanup(func() {
- setting.CreemApiKey = originalAPIKey
- setting.CreemProducts = originalProducts
- setting.CreemWebhookSecret = originalWebhookSecret
- })
- setting.CreemWebhookSecret = ""
- setting.CreemApiKey = "creem_api_key"
- setting.CreemProducts = `[{"productId":"prod_123"}]`
- require.False(t, isCreemWebhookEnabled())
- setting.CreemWebhookSecret = "creem_secret"
- require.True(t, isCreemWebhookEnabled())
- setting.CreemProducts = "[]"
- require.False(t, isCreemWebhookEnabled())
- }
- func TestWaffoWebhookEnabledRequiresTopUpAndWebhookConfig(t *testing.T) {
- originalEnabled := setting.WaffoEnabled
- originalSandbox := setting.WaffoSandbox
- originalAPIKey := setting.WaffoApiKey
- originalPrivateKey := setting.WaffoPrivateKey
- originalPublicCert := setting.WaffoPublicCert
- originalSandboxAPIKey := setting.WaffoSandboxApiKey
- originalSandboxPrivateKey := setting.WaffoSandboxPrivateKey
- originalSandboxPublicCert := setting.WaffoSandboxPublicCert
- t.Cleanup(func() {
- setting.WaffoEnabled = originalEnabled
- setting.WaffoSandbox = originalSandbox
- setting.WaffoApiKey = originalAPIKey
- setting.WaffoPrivateKey = originalPrivateKey
- setting.WaffoPublicCert = originalPublicCert
- setting.WaffoSandboxApiKey = originalSandboxAPIKey
- setting.WaffoSandboxPrivateKey = originalSandboxPrivateKey
- setting.WaffoSandboxPublicCert = originalSandboxPublicCert
- })
- setting.WaffoEnabled = true
- setting.WaffoSandbox = false
- setting.WaffoApiKey = ""
- setting.WaffoPrivateKey = "private"
- setting.WaffoPublicCert = "public"
- require.False(t, isWaffoWebhookEnabled())
- setting.WaffoApiKey = "api"
- require.True(t, isWaffoWebhookEnabled())
- setting.WaffoEnabled = false
- require.False(t, isWaffoWebhookEnabled())
- setting.WaffoEnabled = true
- setting.WaffoSandbox = true
- setting.WaffoSandboxApiKey = ""
- setting.WaffoSandboxPrivateKey = "sandbox_private"
- setting.WaffoSandboxPublicCert = "sandbox_public"
- require.False(t, isWaffoWebhookEnabled())
- setting.WaffoSandboxApiKey = "sandbox_api"
- require.True(t, isWaffoWebhookEnabled())
- }
- func TestWaffoPancakeWebhookEnabledRequiresTopUpAndWebhookConfig(t *testing.T) {
- originalEnabled := setting.WaffoPancakeEnabled
- originalSandbox := setting.WaffoPancakeSandbox
- originalMerchantID := setting.WaffoPancakeMerchantID
- originalPrivateKey := setting.WaffoPancakePrivateKey
- originalWebhookPublicKey := setting.WaffoPancakeWebhookPublicKey
- originalWebhookTestKey := setting.WaffoPancakeWebhookTestKey
- originalStoreID := setting.WaffoPancakeStoreID
- originalProductID := setting.WaffoPancakeProductID
- t.Cleanup(func() {
- setting.WaffoPancakeEnabled = originalEnabled
- setting.WaffoPancakeSandbox = originalSandbox
- setting.WaffoPancakeMerchantID = originalMerchantID
- setting.WaffoPancakePrivateKey = originalPrivateKey
- setting.WaffoPancakeWebhookPublicKey = originalWebhookPublicKey
- setting.WaffoPancakeWebhookTestKey = originalWebhookTestKey
- setting.WaffoPancakeStoreID = originalStoreID
- setting.WaffoPancakeProductID = originalProductID
- })
- setting.WaffoPancakeEnabled = true
- setting.WaffoPancakeSandbox = false
- setting.WaffoPancakeMerchantID = "merchant"
- setting.WaffoPancakePrivateKey = "private"
- setting.WaffoPancakeStoreID = "store"
- setting.WaffoPancakeProductID = "product"
- setting.WaffoPancakeWebhookPublicKey = ""
- require.False(t, isWaffoPancakeWebhookEnabled())
- setting.WaffoPancakeWebhookPublicKey = "public"
- require.True(t, isWaffoPancakeWebhookEnabled())
- setting.WaffoPancakeEnabled = false
- require.False(t, isWaffoPancakeWebhookEnabled())
- setting.WaffoPancakeEnabled = true
- setting.WaffoPancakeSandbox = true
- setting.WaffoPancakeWebhookTestKey = ""
- require.False(t, isWaffoPancakeWebhookEnabled())
- setting.WaffoPancakeWebhookTestKey = "test_public"
- require.True(t, isWaffoPancakeWebhookEnabled())
- }
- func TestEpayWebhookEnabledRequiresTopUpAndWebhookConfig(t *testing.T) {
- originalPayAddress := operation_setting.PayAddress
- originalEpayID := operation_setting.EpayId
- originalEpayKey := operation_setting.EpayKey
- originalPayMethods := operation_setting.PayMethods
- t.Cleanup(func() {
- operation_setting.PayAddress = originalPayAddress
- operation_setting.EpayId = originalEpayID
- operation_setting.EpayKey = originalEpayKey
- operation_setting.PayMethods = originalPayMethods
- })
- operation_setting.PayAddress = "https://pay.example.com"
- operation_setting.EpayId = "epay_id"
- operation_setting.EpayKey = ""
- operation_setting.PayMethods = []map[string]string{{"type": "alipay"}}
- require.False(t, isEpayWebhookEnabled())
- operation_setting.EpayKey = "epay_key"
- require.True(t, isEpayWebhookEnabled())
- operation_setting.PayMethods = nil
- require.False(t, isEpayWebhookEnabled())
- }
|