37 lines
1.0 KiB
Go
37 lines
1.0 KiB
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"go.yaml.in/yaml/v3"
|
|
)
|
|
|
|
func TestAllDevConfig(t *testing.T) {
|
|
data, err := os.ReadFile(filepath.Join("..", "..", "etc", "default_dev.yaml"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var cfg SrvConfig
|
|
if err := yaml.Unmarshal(data, &cfg); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(cfg.Services) == 0 {
|
|
t.Fatal("services must not be empty")
|
|
}
|
|
if cfg.Server.GRPC.Port == "" || cfg.Server.HTTP.Port == "" || cfg.Server.GRPC.Port == cfg.Server.HTTP.Port {
|
|
t.Fatal("separate gRPC and HTTP ports are required")
|
|
}
|
|
if cfg.Authorization.Key == "" || cfg.Authorization.Expire <= 0 {
|
|
t.Fatal("authorization key and expiration are required")
|
|
}
|
|
keyLength := len(cfg.Authorization.Key)
|
|
if keyLength != 16 && keyLength != 24 && keyLength != 32 {
|
|
t.Fatal("authorization key must be compatible with the JWT issuer")
|
|
}
|
|
if cfg.Fts == nil || cfg.Mgt == nil || cfg.Passport == nil || cfg.Sender == nil || cfg.Wallet == nil {
|
|
t.Fatal("service-specific configuration is incomplete")
|
|
}
|
|
}
|