web/backend/secretapi/config_test.go

61 lines
1.5 KiB
Go

package main
import "testing"
func TestConfigValidateAllowsDefaultLocalConfig(t *testing.T) {
t.Parallel()
cfg := loadConfig()
cfg.ChainID = 84532
cfg.RequireOnchainTxVerify = false
cfg.ChainRPCURL = ""
if err := cfg.Validate(); err != nil {
t.Fatalf("expected default-like config valid, got %v", err)
}
}
func TestConfigValidateRejectsStrictVerificationWithoutRPC(t *testing.T) {
t.Parallel()
cfg := loadConfig()
cfg.RequireOnchainTxVerify = true
cfg.ChainRPCURL = ""
if err := cfg.Validate(); err == nil {
t.Fatalf("expected strict verification config validation failure")
}
}
func TestConfigValidateRejectsNonPositiveChainID(t *testing.T) {
t.Parallel()
cfg := loadConfig()
cfg.ChainID = 0
if err := cfg.Validate(); err == nil {
t.Fatalf("expected chain id validation failure")
}
}
func TestConfigValidateRejectsNonUSDCCurrency(t *testing.T) {
t.Parallel()
cfg := loadConfig()
cfg.MintCurrency = "ETH"
if err := cfg.Validate(); err == nil {
t.Fatalf("expected mint currency validation failure")
}
}
func TestConfigValidateRejectsNonSixMintDecimals(t *testing.T) {
t.Parallel()
cfg := loadConfig()
cfg.MintDecimals = 18
if err := cfg.Validate(); err == nil {
t.Fatalf("expected mint decimals validation failure")
}
}
func TestConfigValidateRejectsInvalidMintAmount(t *testing.T) {
t.Parallel()
cfg := loadConfig()
cfg.MintAmountAtomic = "not-a-number"
if err := cfg.Validate(); err == nil {
t.Fatalf("expected mint amount validation failure")
}
}