mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-09 10:57:03 +08:00
feat(gateway): 添加标准文本非流式心跳
This commit is contained in:
@@ -1,13 +1,14 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
|
||||
const { getSystemConfigMock } = vi.hoisted(() => ({
|
||||
const { getSystemConfigMock, updateSystemConfigMock } = vi.hoisted(() => ({
|
||||
getSystemConfigMock: vi.fn(),
|
||||
updateSystemConfigMock: vi.fn(),
|
||||
}))
|
||||
|
||||
vi.mock('@/api/admin', () => ({
|
||||
adminApi: {
|
||||
getSystemConfig: getSystemConfigMock,
|
||||
updateSystemConfig: vi.fn(),
|
||||
updateSystemConfig: updateSystemConfigMock,
|
||||
getSystemVersion: vi.fn(),
|
||||
},
|
||||
}))
|
||||
@@ -40,6 +41,7 @@ interface DeferredConfigResponse {
|
||||
describe('useSystemConfig', () => {
|
||||
beforeEach(() => {
|
||||
getSystemConfigMock.mockReset()
|
||||
updateSystemConfigMock.mockReset()
|
||||
})
|
||||
|
||||
it('loads config keys in parallel and keeps change detection disabled until the baseline is ready', async () => {
|
||||
@@ -53,6 +55,7 @@ describe('useSystemConfig', () => {
|
||||
|
||||
expect(getSystemConfigMock.mock.calls.map(([key]) => key)).toContain('request_record_level')
|
||||
expect(getSystemConfigMock.mock.calls.map(([key]) => key)).toContain('proxy_node_metrics_cleanup_batch_size')
|
||||
expect(getSystemConfigMock.mock.calls.map(([key]) => key)).toContain('enable_standard_text_sync_heartbeat')
|
||||
|
||||
state.systemConfig.value.request_record_level = 'headers'
|
||||
expect(state.systemConfigLoading.value).toBe(true)
|
||||
@@ -74,4 +77,29 @@ describe('useSystemConfig', () => {
|
||||
state.systemConfig.value.request_record_level = 'full'
|
||||
expect(state.hasLogConfigChanges.value).toBe(true)
|
||||
})
|
||||
|
||||
it('loads and saves the standard text sync heartbeat flag as a basic config item', async () => {
|
||||
getSystemConfigMock.mockImplementation(async (key: string) => ({
|
||||
key,
|
||||
value: key === 'enable_standard_text_sync_heartbeat' ? false : undefined,
|
||||
is_set: key === 'enable_standard_text_sync_heartbeat',
|
||||
}))
|
||||
updateSystemConfigMock.mockResolvedValue({})
|
||||
|
||||
const state = useSystemConfig()
|
||||
await state.loadSystemConfig()
|
||||
|
||||
expect(state.systemConfig.value.enable_standard_text_sync_heartbeat).toBe(false)
|
||||
state.systemConfig.value.enable_standard_text_sync_heartbeat = true
|
||||
expect(state.hasBasicConfigChanges.value).toBe(true)
|
||||
|
||||
await state.saveBasicConfig()
|
||||
|
||||
expect(updateSystemConfigMock).toHaveBeenCalledWith(
|
||||
'enable_standard_text_sync_heartbeat',
|
||||
true,
|
||||
'标准文本非流式心跳开关:开启后外层 HTTP 状态固定为 200,上游失败写入响应体'
|
||||
)
|
||||
expect(state.hasBasicConfigChanges.value).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user