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 len(cfg.DynamicRPC.Allow) == 0 {
		t.Fatal("dynamic RPC allow list must be explicit")
	}
	if cfg.Fts == nil || cfg.Mgt == nil || cfg.Passport == nil || cfg.Sender == nil || cfg.Wallet == nil {
		t.Fatal("service-specific configuration is incomplete")
	}
}
