fix: skip SUB2API proxy when default proxy is empty
This commit is contained in:
@@ -61,7 +61,7 @@ const DEFAULT_HOTMAIL_LOCAL_BASE_URL = 'http://127.0.0.1:17373';
|
||||
const DEFAULT_ACCOUNT_RUN_HISTORY_HELPER_BASE_URL = DEFAULT_HOTMAIL_LOCAL_BASE_URL;
|
||||
const DEFAULT_HOTMAIL_REMOTE_BASE_URL = '';
|
||||
const DEFAULT_VERIFICATION_RESEND_COUNT = 4;
|
||||
const DEFAULT_SUB2API_PROXY_NAME = 'shadowrocket';
|
||||
const DEFAULT_SUB2API_PROXY_NAME = '';
|
||||
const HOTMAIL_SERVICE_MODE_REMOTE = 'remote';
|
||||
const HOTMAIL_SERVICE_MODE_LOCAL = 'local';
|
||||
const VERIFICATION_RESEND_COUNT_MIN = 0;
|
||||
@@ -112,7 +112,7 @@ return {
|
||||
);
|
||||
assert.equal(
|
||||
api.normalizePersistentSettingValue('sub2apiDefaultProxyName', ''),
|
||||
'shadowrocket'
|
||||
''
|
||||
);
|
||||
assert.equal(
|
||||
api.normalizePersistentSettingValue('sub2apiDefaultProxyName', ' proxy-a '),
|
||||
|
||||
@@ -39,7 +39,7 @@ function createSub2ApiPanelContext(fetchCalls = []) {
|
||||
onMessage: { addListener() {} },
|
||||
sendMessage: async () => ({
|
||||
email: 'flow@example.com',
|
||||
sub2apiDefaultProxyName: 'shadowrocket',
|
||||
sub2apiDefaultProxyName: '',
|
||||
}),
|
||||
},
|
||||
},
|
||||
@@ -176,3 +176,46 @@ test('SUB2API step 10 uses the same proxy for code exchange and account creation
|
||||
assert.equal(createCall.body.group_ids[0], 5);
|
||||
assert.equal(context.completed[0].step, 10);
|
||||
});
|
||||
|
||||
test('SUB2API step 1 omits proxy_id when default proxy is empty', async () => {
|
||||
const fetchCalls = [];
|
||||
const context = createSub2ApiPanelContext(fetchCalls);
|
||||
|
||||
const result = await vm.runInContext(`
|
||||
step1_generateOpenAiAuthUrl({
|
||||
sub2apiEmail: 'admin@example.com',
|
||||
sub2apiPassword: 'secret',
|
||||
sub2apiGroupName: 'codex',
|
||||
sub2apiDefaultProxyName: ' '
|
||||
}, { report: false })
|
||||
`, context);
|
||||
|
||||
const generateCall = fetchCalls.find((call) => call.path === '/api/v1/admin/openai/generate-auth-url');
|
||||
assert.equal(result.sub2apiProxyId, null);
|
||||
assert.equal(Object.hasOwn(generateCall.body, 'proxy_id'), false);
|
||||
});
|
||||
|
||||
test('SUB2API step 10 omits proxy_id when no proxy is configured', async () => {
|
||||
const fetchCalls = [];
|
||||
const context = createSub2ApiPanelContext(fetchCalls);
|
||||
|
||||
await vm.runInContext(`
|
||||
step9_submitOpenAiCallback({
|
||||
localhostUrl: 'http://localhost:1455/auth/callback?code=callback-code&state=oauth-state',
|
||||
sub2apiUrl: 'https://sub.example/admin/accounts',
|
||||
sub2apiEmail: 'admin@example.com',
|
||||
sub2apiPassword: 'secret',
|
||||
sub2apiGroupName: 'codex',
|
||||
sub2apiSessionId: 'session-1',
|
||||
sub2apiOAuthState: 'oauth-state',
|
||||
sub2apiGroupId: 5,
|
||||
sub2apiDefaultProxyName: ''
|
||||
})
|
||||
`, context);
|
||||
|
||||
const exchangeCall = fetchCalls.find((call) => call.path === '/api/v1/admin/openai/exchange-code');
|
||||
const createCall = fetchCalls.find((call) => call.path === '/api/v1/admin/accounts');
|
||||
|
||||
assert.equal(Object.hasOwn(exchangeCall.body, 'proxy_id'), false);
|
||||
assert.equal(Object.hasOwn(createCall.body, 'proxy_id'), false);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user