@@ -5,20 +5,29 @@ import { expect, test } from "vite-plus/test";
55import { bridgeBailianCredentials } from "../src/commands/agent/_engine/credentials.ts" ;
66
77/**
8- * bridgeBailianCredentials 把 ~/.bailian/config.json 的 api_key / workspace_id
9- * 作为最低优先级兜底填入 DASHSCOPE_API_KEY / BAILIAN_WORKSPACE_ID。
10- * 用临时 config dir + env 保存恢复隔离,验证优先级与不抛错语义。
8+ * bridgeBailianCredentials 把 ~/.bailian/config.json 的 api_key / agentstudio_base_url
9+ * / workspace_id 作为最低优先级兜底填入 DASHSCOPE_API_KEY / BAILIAN_BASE_URL /
10+ * BAILIAN_WORKSPACE_ID。 用临时 config dir + env 保存恢复隔离,验证优先级与不抛错语义。
1111 */
1212async function inScenario (
1313 scenario : {
14- config ?: { api_key ?: string ; workspace_id ?: string } ;
15- env ?: { DASHSCOPE_API_KEY ?: string ; BAILIAN_WORKSPACE_ID ?: string } ;
14+ config ?: {
15+ api_key ?: string ;
16+ workspace_id ?: string ;
17+ agentstudio_base_url ?: string ;
18+ } ;
19+ env ?: {
20+ DASHSCOPE_API_KEY ?: string ;
21+ BAILIAN_WORKSPACE_ID ?: string ;
22+ BAILIAN_BASE_URL ?: string ;
23+ } ;
1624 } ,
1725 assert : ( ) => void ,
1826) : Promise < void > {
1927 const savedConfigDir = process . env . BAILIAN_CONFIG_DIR ;
2028 const savedApiKey = process . env . DASHSCOPE_API_KEY ;
2129 const savedWorkspace = process . env . BAILIAN_WORKSPACE_ID ;
30+ const savedBaseUrl = process . env . BAILIAN_BASE_URL ;
2231
2332 const dir = mkdtempSync ( join ( tmpdir ( ) , "bl-cred-bridge-" ) ) ;
2433 process . env . BAILIAN_CONFIG_DIR = dir ;
@@ -31,13 +40,16 @@ async function inScenario(
3140 else process . env . DASHSCOPE_API_KEY = scenario . env . DASHSCOPE_API_KEY ;
3241 if ( scenario . env ?. BAILIAN_WORKSPACE_ID === undefined ) delete process . env . BAILIAN_WORKSPACE_ID ;
3342 else process . env . BAILIAN_WORKSPACE_ID = scenario . env . BAILIAN_WORKSPACE_ID ;
43+ if ( scenario . env ?. BAILIAN_BASE_URL === undefined ) delete process . env . BAILIAN_BASE_URL ;
44+ else process . env . BAILIAN_BASE_URL = scenario . env . BAILIAN_BASE_URL ;
3445
3546 try {
3647 assert ( ) ;
3748 } finally {
3849 restore ( "BAILIAN_CONFIG_DIR" , savedConfigDir ) ;
3950 restore ( "DASHSCOPE_API_KEY" , savedApiKey ) ;
4051 restore ( "BAILIAN_WORKSPACE_ID" , savedWorkspace ) ;
52+ restore ( "BAILIAN_BASE_URL" , savedBaseUrl ) ;
4153 rmSync ( dir , { recursive : true , force : true } ) ;
4254 }
4355}
@@ -51,7 +63,10 @@ test("bridge:env 已有值时不被 bl config 覆盖(最低优先级)", async ()
5163 await inScenario (
5264 {
5365 config : { api_key : "sk-from-config" , workspace_id : "ws-from-config" } ,
54- env : { DASHSCOPE_API_KEY : "sk-from-env" , BAILIAN_WORKSPACE_ID : "ws-from-env" } ,
66+ env : {
67+ DASHSCOPE_API_KEY : "sk-from-env" ,
68+ BAILIAN_WORKSPACE_ID : "ws-from-env" ,
69+ } ,
5570 } ,
5671 ( ) => {
5772 bridgeBailianCredentials ( ) ;
@@ -63,7 +78,10 @@ test("bridge:env 已有值时不被 bl config 覆盖(最低优先级)", async ()
6378
6479test ( "bridge:env 缺失且 bl config 有值时填充" , async ( ) => {
6580 await inScenario (
66- { config : { api_key : "sk-from-config" , workspace_id : "ws-from-config" } , env : { } } ,
81+ {
82+ config : { api_key : "sk-from-config" , workspace_id : "ws-from-config" } ,
83+ env : { } ,
84+ } ,
6785 ( ) => {
6886 bridgeBailianCredentials ( ) ;
6987 expect ( process . env . DASHSCOPE_API_KEY ) . toBe ( "sk-from-config" ) ;
@@ -93,3 +111,39 @@ test("bridge:env 与 bl config 皆缺失时不抛错且不写入", async () => {
93111 expect ( process . env . BAILIAN_WORKSPACE_ID ) . toBeUndefined ( ) ;
94112 } ) ;
95113} ) ;
114+
115+ test ( "bridge:agentstudio_base_url 兜底填入 BAILIAN_BASE_URL" , async ( ) => {
116+ await inScenario (
117+ {
118+ config : {
119+ api_key : "sk-from-config" ,
120+ agentstudio_base_url : "https://ws-x.cn-beijing.maas.aliyuncs.com/api/v1/agentstudio" ,
121+ } ,
122+ env : { } ,
123+ } ,
124+ ( ) => {
125+ bridgeBailianCredentials ( ) ;
126+ expect ( process . env . BAILIAN_BASE_URL ) . toBe (
127+ "https://ws-x.cn-beijing.maas.aliyuncs.com/api/v1/agentstudio" ,
128+ ) ;
129+ } ,
130+ ) ;
131+ } ) ;
132+
133+ test ( "bridge:env 已有 BAILIAN_BASE_URL 时不被 bl config 覆盖" , async ( ) => {
134+ await inScenario (
135+ {
136+ config : {
137+ api_key : "sk-from-config" ,
138+ agentstudio_base_url : "https://from-config.aliyuncs.com/api/v1/agentstudio" ,
139+ } ,
140+ env : {
141+ BAILIAN_BASE_URL : "https://from-env.aliyuncs.com/api/v1/agentstudio" ,
142+ } ,
143+ } ,
144+ ( ) => {
145+ bridgeBailianCredentials ( ) ;
146+ expect ( process . env . BAILIAN_BASE_URL ) . toBe ( "https://from-env.aliyuncs.com/api/v1/agentstudio" ) ;
147+ } ,
148+ ) ;
149+ } ) ;
0 commit comments