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") } }