fix: use selected model in claude-console connectivity test payload

This commit is contained in:
Jiahao Luo
2026-03-01 23:20:24 +08:00
parent 75515f92e6
commit adf2dd61e0
2 changed files with 74 additions and 2 deletions

View File

@@ -1455,8 +1455,8 @@ class ClaudeConsoleRelayService {
}
// 🧪 测试账号连接供Admin API使用
async testAccountConnection(accountId, responseStream) {
const { sendStreamTestRequest } = require('../../utils/testPayloadHelper')
async testAccountConnection(accountId, responseStream, model) {
const { createClaudeTestPayload, sendStreamTestRequest } = require('../../utils/testPayloadHelper')
try {
const account = await claudeConsoleAccountService.getAccount(accountId)
@@ -1470,11 +1470,13 @@ class ClaudeConsoleRelayService {
const apiUrl = cleanUrl.endsWith('/v1/messages')
? cleanUrl
: `${cleanUrl}/v1/messages?beta=true`
const payload = createClaudeTestPayload(model, { stream: true })
await sendStreamTestRequest({
apiUrl,
authorization: `Bearer ${account.apiKey}`,
responseStream,
payload,
proxyAgent: claudeConsoleAccountService._createProxyAgent(account.proxy),
extraHeaders: account.userAgent ? { 'User-Agent': account.userAgent } : {}
})

View File

@@ -0,0 +1,70 @@
jest.mock('../src/utils/logger', () => ({
debug: jest.fn(),
info: jest.fn(),
warn: jest.fn(),
error: jest.fn()
}))
jest.mock('../src/services/account/claudeConsoleAccountService', () => ({
getAccount: jest.fn(),
_createProxyAgent: jest.fn()
}))
jest.mock('/Users/mike/projects/claude-relay-service/config/config', () => ({}), {
virtual: true
})
jest.mock('../src/models/redis', () => ({}))
jest.mock('../src/utils/testPayloadHelper', () => ({
createClaudeTestPayload: jest.fn(),
sendStreamTestRequest: jest.fn()
}))
const claudeConsoleRelayService = require('../src/services/relay/claudeConsoleRelayService')
const claudeConsoleAccountService = require('../src/services/account/claudeConsoleAccountService')
const {
createClaudeTestPayload,
sendStreamTestRequest
} = require('../src/utils/testPayloadHelper')
describe('claudeConsoleRelayService.testAccountConnection', () => {
beforeEach(() => {
jest.clearAllMocks()
})
it('passes selected model stream payload to sendStreamTestRequest', async () => {
claudeConsoleAccountService.getAccount.mockResolvedValue({
name: 'Console A1',
apiUrl: 'https://console.example.com',
apiKey: 'test-key',
proxy: null,
userAgent: null
})
claudeConsoleAccountService._createProxyAgent.mockReturnValue(undefined)
const payload = {
model: 'claude-sonnet-4-6',
stream: true
}
createClaudeTestPayload.mockReturnValue(payload)
sendStreamTestRequest.mockResolvedValue(undefined)
const res = {}
await claudeConsoleRelayService.testAccountConnection('a1', res, 'claude-sonnet-4-6')
expect(createClaudeTestPayload).toHaveBeenCalledWith('claude-sonnet-4-6', { stream: true })
expect(sendStreamTestRequest).toHaveBeenCalledWith(
expect.objectContaining({
payload
})
)
expect(sendStreamTestRequest).toHaveBeenCalledWith(
expect.objectContaining({
payload: expect.objectContaining({
model: 'claude-sonnet-4-6',
stream: true
})
})
)
})
})