test(server): 补充 buildMiddlewareChain 单元测试
- 新增访问日志、访问控制、限流中间件测试 - 新增重写、压缩、安全头中间件测试 - 新增全中间件组合测试 - 重命名 TestSetListeners 为 TestUpgradeSetListeners 避免命名冲突 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
f894787a2b
commit
a627d58832
@ -105,3 +105,177 @@ func TestGracefulStopWithZeroTimeout(t *testing.T) {
|
||||
t.Errorf("GracefulStop(0) returned error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// TestBuildMiddlewareChain_AccessLog 测试访问日志中间件
|
||||
func TestBuildMiddlewareChain_AccessLog(t *testing.T) {
|
||||
cfg := &config.Config{
|
||||
Logging: config.LoggingConfig{},
|
||||
Server: config.ServerConfig{
|
||||
Listen: ":8080",
|
||||
},
|
||||
}
|
||||
|
||||
s := New(cfg)
|
||||
chain, err := s.buildMiddlewareChain(&cfg.Server)
|
||||
if err != nil {
|
||||
t.Errorf("buildMiddlewareChain failed: %v", err)
|
||||
}
|
||||
if chain == nil {
|
||||
t.Error("Expected non-nil chain")
|
||||
}
|
||||
}
|
||||
|
||||
// TestBuildMiddlewareChain_AccessControl 测试访问控制中间件
|
||||
func TestBuildMiddlewareChain_AccessControl(t *testing.T) {
|
||||
cfg := &config.Config{
|
||||
Logging: config.LoggingConfig{},
|
||||
Server: config.ServerConfig{
|
||||
Listen: ":8080",
|
||||
Security: config.SecurityConfig{
|
||||
Access: config.AccessConfig{
|
||||
Allow: []string{"127.0.0.1"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
s := New(cfg)
|
||||
chain, err := s.buildMiddlewareChain(&cfg.Server)
|
||||
if err != nil {
|
||||
t.Errorf("buildMiddlewareChain failed: %v", err)
|
||||
}
|
||||
if chain == nil {
|
||||
t.Error("Expected non-nil chain")
|
||||
}
|
||||
}
|
||||
|
||||
// TestBuildMiddlewareChain_RateLimiter 测试限流中间件
|
||||
func TestBuildMiddlewareChain_RateLimiter(t *testing.T) {
|
||||
cfg := &config.Config{
|
||||
Logging: config.LoggingConfig{},
|
||||
Server: config.ServerConfig{
|
||||
Listen: ":8080",
|
||||
Security: config.SecurityConfig{
|
||||
RateLimit: config.RateLimitConfig{
|
||||
RequestRate: 100,
|
||||
Burst: 200,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
s := New(cfg)
|
||||
chain, err := s.buildMiddlewareChain(&cfg.Server)
|
||||
if err != nil {
|
||||
t.Errorf("buildMiddlewareChain failed: %v", err)
|
||||
}
|
||||
if chain == nil {
|
||||
t.Error("Expected non-nil chain")
|
||||
}
|
||||
}
|
||||
|
||||
// TestBuildMiddlewareChain_Rewrite 测试重写中间件
|
||||
func TestBuildMiddlewareChain_Rewrite(t *testing.T) {
|
||||
cfg := &config.Config{
|
||||
Logging: config.LoggingConfig{},
|
||||
Server: config.ServerConfig{
|
||||
Listen: ":8080",
|
||||
Rewrite: []config.RewriteRule{
|
||||
{Pattern: "/old/(.*)", Replacement: "/new/$1"},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
s := New(cfg)
|
||||
chain, err := s.buildMiddlewareChain(&cfg.Server)
|
||||
if err != nil {
|
||||
t.Errorf("buildMiddlewareChain failed: %v", err)
|
||||
}
|
||||
if chain == nil {
|
||||
t.Error("Expected non-nil chain")
|
||||
}
|
||||
}
|
||||
|
||||
// TestBuildMiddlewareChain_Compression 测试压缩中间件
|
||||
func TestBuildMiddlewareChain_Compression(t *testing.T) {
|
||||
cfg := &config.Config{
|
||||
Logging: config.LoggingConfig{},
|
||||
Server: config.ServerConfig{
|
||||
Listen: ":8080",
|
||||
Compression: config.CompressionConfig{
|
||||
Level: 6,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
s := New(cfg)
|
||||
chain, err := s.buildMiddlewareChain(&cfg.Server)
|
||||
if err != nil {
|
||||
t.Errorf("buildMiddlewareChain failed: %v", err)
|
||||
}
|
||||
if chain == nil {
|
||||
t.Error("Expected non-nil chain")
|
||||
}
|
||||
}
|
||||
|
||||
// TestBuildMiddlewareChain_SecurityHeaders 测试安全头中间件
|
||||
func TestBuildMiddlewareChain_SecurityHeaders(t *testing.T) {
|
||||
cfg := &config.Config{
|
||||
Logging: config.LoggingConfig{},
|
||||
Server: config.ServerConfig{
|
||||
Listen: ":8080",
|
||||
Security: config.SecurityConfig{
|
||||
Headers: config.SecurityHeaders{
|
||||
XFrameOptions: "DENY",
|
||||
XContentTypeOptions: "nosniff",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
s := New(cfg)
|
||||
chain, err := s.buildMiddlewareChain(&cfg.Server)
|
||||
if err != nil {
|
||||
t.Errorf("buildMiddlewareChain failed: %v", err)
|
||||
}
|
||||
if chain == nil {
|
||||
t.Error("Expected non-nil chain")
|
||||
}
|
||||
}
|
||||
|
||||
// TestBuildMiddlewareChain_AllMiddlewares 测试所有中间件组合
|
||||
func TestBuildMiddlewareChain_AllMiddlewares(t *testing.T) {
|
||||
cfg := &config.Config{
|
||||
Logging: config.LoggingConfig{},
|
||||
Server: config.ServerConfig{
|
||||
Listen: ":8080",
|
||||
Security: config.SecurityConfig{
|
||||
Access: config.AccessConfig{
|
||||
Allow: []string{"127.0.0.1"},
|
||||
},
|
||||
RateLimit: config.RateLimitConfig{
|
||||
RequestRate: 100,
|
||||
Burst: 200,
|
||||
},
|
||||
Headers: config.SecurityHeaders{
|
||||
XFrameOptions: "DENY",
|
||||
},
|
||||
},
|
||||
Rewrite: []config.RewriteRule{
|
||||
{Pattern: "/old/(.*)", Replacement: "/new/$1"},
|
||||
},
|
||||
Compression: config.CompressionConfig{
|
||||
Level: 6,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
s := New(cfg)
|
||||
chain, err := s.buildMiddlewareChain(&cfg.Server)
|
||||
if err != nil {
|
||||
t.Errorf("buildMiddlewareChain failed: %v", err)
|
||||
}
|
||||
if chain == nil {
|
||||
t.Error("Expected non-nil chain")
|
||||
}
|
||||
}
|
||||
@ -102,8 +102,8 @@ func TestWaitForShutdownNoOldPid(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// TestSetListeners 测试监听器设置
|
||||
func TestSetListeners(t *testing.T) {
|
||||
// TestUpgradeSetListeners 测试监听器设置
|
||||
func TestUpgradeSetListeners(t *testing.T) {
|
||||
mgr := NewUpgradeManager(nil)
|
||||
|
||||
// 创建模拟监听器
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user