29 lines
1.1 KiB
Go
29 lines
1.1 KiB
Go
// Package config 验证 im-service YAML 配置加载契约。
|
|
package config
|
|
|
|
import "testing"
|
|
|
|
// TestLoad 验证 im-service 的本地 config.yaml 能被正常读取。
|
|
func TestLoad(t *testing.T) {
|
|
// 读取真实本地配置文件,确保默认 13xxx 端口和 room-service 地址没有漂移。
|
|
cfg, err := Load("../../configs/config.yaml")
|
|
if err != nil {
|
|
t.Fatalf("Load failed: %v", err)
|
|
}
|
|
|
|
// im-service 对外 HTTP/WS 和内部 gRPC 端口必须保持分离。
|
|
if cfg.HTTPAddr != ":13002" || cfg.GRPCAddr != ":13003" {
|
|
t.Fatalf("unexpected listen addrs: http=%s grpc=%s", cfg.HTTPAddr, cfg.GRPCAddr)
|
|
}
|
|
|
|
// 本地默认 room-service 地址是发言和 presence 守卫链路的基础契约。
|
|
if cfg.RoomServiceAddr != "127.0.0.1:13001" {
|
|
t.Fatalf("unexpected room addr: %s", cfg.RoomServiceAddr)
|
|
}
|
|
|
|
// IM 下线需要给 WS 客户端明确重连窗口,配置文件必须显式覆盖默认 timeout 契约。
|
|
if cfg.ShutdownTimeout == 0 || cfg.HTTPDrainTimeout == 0 || cfg.GRPCDrainTimeout == 0 || cfg.WSDrainTimeout == 0 {
|
|
t.Fatalf("shutdown timeouts must be configured: %+v", cfg)
|
|
}
|
|
}
|