61 lines
1.5 KiB
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")
|
|
}
|
|
}
|