Adapt multi-instance acceptance to system-managed mock
ci / svc-realcombo (pull_request) Successful in 2m7s
ci / test-pg (pull_request) Successful in 2m59s
ci / test (pull_request) Successful in 4m57s

Why: P2 受管把 runtime.mock 收进系统层——Backend #190 让 --mock 播种系统层(对全部租户生效),两进程验收随之简化:去掉逐租户显式开启,backend pin 前进到 741da4a。
Evidence: 本地真实 PG(容器)+ AGENT_BIN 跑 make test-multi-instance 全绿(15.3s);此前 --mock 经 user 层写入被受管拦截导致实例无法启动的根因已由 Backend #190 修复并复验。
Impact: 测试文件与 gitlink;无产品代码变更。
Refs: 提案 r1 P2;Backend PR #188/#190
This commit is contained in:
2026-10-13 05:14:44 +00:00
parent 1335c20101
commit 396b89836a
2 changed files with 4 additions and 29 deletions
@@ -42,9 +42,6 @@ const (
aliceOwner = "mi_alice"
alicePass0 = "mi-alice-pass-0"
alicePass = "mi-alice-pass-1"
bossOwner = "mi_boss"
bossPass0 = "mi-boss-pass-0"
bossPass = "mi-boss-pass-1"
httpWait = 15 * time.Second
)
@@ -462,34 +459,12 @@ func (e *env) loginAlice(t *testing.T) *userClient {
apiB: &http.Client{Timeout: httpWait, Transport: bearerRT{key: key}},
streamB: &http.Client{Transport: bearerRT{key: key}}, // SSE 无整体超时;chan 背压控制
}
// --mock 只写 OwnerDefault 的设置;alice 是独立租户,须显式开 mock
// (selectConversationRunner 按 EffectiveSettings 分流),否则 run 走
// LLMRunner 且无模型配置直接失败。P2 受管:runtime.mock 是系统受管项且
// 本环境 --auth on,须由管理员经系统面开启(对全部租户生效);alice
// 保持普通租户身份不变。
e.enableMockViaSystemAdmin(t)
// P2 受管(Backend #190):--mock 启动选项播种系统层(runtime.mock 为
// 系统受管项),对全部租户生效——alice 无需再显式开启 mock;
// selectConversationRunner 按 EffectiveSettings 分流到 MockRunner。
return uc
}
// enableMockViaSystemAdmin 用一次性管理员会话经系统面开启 mock(P2 后的
// 正规路径:受管项写入面要求 isAdmin;新账号须先过改密门才能走业务接口)。
func (e *env) enableMockViaSystemAdmin(t *testing.T) {
t.Helper()
e.cli(t, "user", "create", "--dsn", e.dbDSN, "--owner", bossOwner, "--name", "Boss", "--password", bossPass0, "--role", "admin")
jar, err := cookiejar.New(nil)
if err != nil {
t.Fatal(err)
}
sess := &http.Client{Timeout: httpWait, Jar: jar}
e.do(t, sess, "POST", "/api/auth/login", map[string]any{
"owner": bossOwner, "password": bossPass0,
}, nil)
e.do(t, sess, "POST", "/api/auth/password", map[string]any{
"current": bossPass0, "next": bossPass,
}, nil)
e.do(t, sess, "PUT", "/api/settings/system", map[string]any{"runtime": map[string]any{"mock": true}}, nil)
}
// bearerRT 为所有请求附加 Authorization: Bearer <key>。
type bearerRT struct{ key string }