mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-04-19 13:58:39 +00:00
fix: use selected model in claude-console connectivity test payload
This commit is contained in:
@@ -1455,8 +1455,8 @@ class ClaudeConsoleRelayService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 🧪 测试账号连接(供Admin API使用)
|
// 🧪 测试账号连接(供Admin API使用)
|
||||||
async testAccountConnection(accountId, responseStream) {
|
async testAccountConnection(accountId, responseStream, model) {
|
||||||
const { sendStreamTestRequest } = require('../../utils/testPayloadHelper')
|
const { createClaudeTestPayload, sendStreamTestRequest } = require('../../utils/testPayloadHelper')
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const account = await claudeConsoleAccountService.getAccount(accountId)
|
const account = await claudeConsoleAccountService.getAccount(accountId)
|
||||||
@@ -1470,11 +1470,13 @@ class ClaudeConsoleRelayService {
|
|||||||
const apiUrl = cleanUrl.endsWith('/v1/messages')
|
const apiUrl = cleanUrl.endsWith('/v1/messages')
|
||||||
? cleanUrl
|
? cleanUrl
|
||||||
: `${cleanUrl}/v1/messages?beta=true`
|
: `${cleanUrl}/v1/messages?beta=true`
|
||||||
|
const payload = createClaudeTestPayload(model, { stream: true })
|
||||||
|
|
||||||
await sendStreamTestRequest({
|
await sendStreamTestRequest({
|
||||||
apiUrl,
|
apiUrl,
|
||||||
authorization: `Bearer ${account.apiKey}`,
|
authorization: `Bearer ${account.apiKey}`,
|
||||||
responseStream,
|
responseStream,
|
||||||
|
payload,
|
||||||
proxyAgent: claudeConsoleAccountService._createProxyAgent(account.proxy),
|
proxyAgent: claudeConsoleAccountService._createProxyAgent(account.proxy),
|
||||||
extraHeaders: account.userAgent ? { 'User-Agent': account.userAgent } : {}
|
extraHeaders: account.userAgent ? { 'User-Agent': account.userAgent } : {}
|
||||||
})
|
})
|
||||||
|
|||||||
70
tests/claudeConsoleRelayService.test.js
Normal file
70
tests/claudeConsoleRelayService.test.js
Normal 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
|
||||||
|
})
|
||||||
|
})
|
||||||
|
)
|
||||||
|
})
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user