feat(acceptance): 增加生产同构媒体压力验收模式
引入动态流量门禁、隔离验收身份与协议级 Gemini/Volces 模拟器,覆盖双站点 API、Worker、PostgreSQL、River、账务、回调和媒体物化链路。 新增 P24/P28/P32 容量阶梯、Worker 强杀恢复、真实小流量 canary、CAS 放量和失败保持 validation 的生产编排;Worker 执行槽、连接池、媒体并发和双站点副本数改为环境配置。 验证:Go 全量测试、真实 PostgreSQL 迁移集成测试、迁移安全检查、OpenAPI 生成、ShellCheck、Kustomize、gofmt 和 git diff --check。
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package httpapi
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
@@ -35,3 +38,25 @@ func TestVolcesCompatibleTaskBuildsProtocolResponseFromCanonicalResult(t *testin
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestVolcesCompatibilityPreservesValidationGateStatus(t *testing.T) {
|
||||
recorder := httptest.NewRecorder()
|
||||
writeVolcesCompatibleTaskError(recorder, &gatewayTaskCreationError{
|
||||
Stage: gatewayTaskCreationPrepare,
|
||||
Err: &taskTrafficError{
|
||||
Status: http.StatusServiceUnavailable,
|
||||
Code: "validation_in_progress",
|
||||
Message: "new production tasks are paused while validation is running",
|
||||
},
|
||||
})
|
||||
if recorder.Code != http.StatusServiceUnavailable {
|
||||
t.Fatalf("status=%d body=%s", recorder.Code, recorder.Body.String())
|
||||
}
|
||||
var payload VolcesErrorEnvelope
|
||||
if err := json.NewDecoder(recorder.Body).Decode(&payload); err != nil {
|
||||
t.Fatalf("decode error: %v", err)
|
||||
}
|
||||
if payload.Error.Code != "validation_in_progress" {
|
||||
t.Fatalf("error=%+v", payload.Error)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user