mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-07 22:10:21 +08:00
fix: test
This commit is contained in:
parent
c0c7d1b0df
commit
03dbc52477
@ -110,6 +110,31 @@ const createWindowKeyv = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建默认的 mock state,包含所有必需的字段
|
||||||
|
*/
|
||||||
|
const createDefaultMockState = (overrides?: {
|
||||||
|
includeUsage?: boolean | undefined
|
||||||
|
copilotHeaders?: Record<string, string>
|
||||||
|
}) => ({
|
||||||
|
copilot: { defaultHeaders: overrides?.copilotHeaders ?? {} },
|
||||||
|
settings: {
|
||||||
|
openAI: {
|
||||||
|
streamOptions: {
|
||||||
|
includeUsage: overrides?.includeUsage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
llm: {
|
||||||
|
settings: {
|
||||||
|
vertexai: {
|
||||||
|
projectId: '',
|
||||||
|
location: ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
const createCopilotProvider = (): Provider => ({
|
const createCopilotProvider = (): Provider => ({
|
||||||
id: 'copilot',
|
id: 'copilot',
|
||||||
type: 'openai',
|
type: 'openai',
|
||||||
@ -153,16 +178,7 @@ describe('Copilot responses routing', () => {
|
|||||||
...(globalThis as any).window,
|
...(globalThis as any).window,
|
||||||
keyv: createWindowKeyv()
|
keyv: createWindowKeyv()
|
||||||
}
|
}
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState())
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('detects official GPT-5 Codex identifiers case-insensitively', () => {
|
it('detects official GPT-5 Codex identifiers case-insensitively', () => {
|
||||||
@ -198,16 +214,7 @@ describe('CherryAI provider configuration', () => {
|
|||||||
...(globalThis as any).window,
|
...(globalThis as any).window,
|
||||||
keyv: createWindowKeyv()
|
keyv: createWindowKeyv()
|
||||||
}
|
}
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState())
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
vi.clearAllMocks()
|
vi.clearAllMocks()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -279,16 +286,7 @@ describe('Perplexity provider configuration', () => {
|
|||||||
...(globalThis as any).window,
|
...(globalThis as any).window,
|
||||||
keyv: createWindowKeyv()
|
keyv: createWindowKeyv()
|
||||||
}
|
}
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState())
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
vi.clearAllMocks()
|
vi.clearAllMocks()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -363,6 +361,7 @@ describe('Stream options includeUsage configuration', () => {
|
|||||||
...(globalThis as any).window,
|
...(globalThis as any).window,
|
||||||
keyv: createWindowKeyv()
|
keyv: createWindowKeyv()
|
||||||
}
|
}
|
||||||
|
mockGetState.mockReturnValue(createDefaultMockState())
|
||||||
vi.clearAllMocks()
|
vi.clearAllMocks()
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -377,16 +376,7 @@ describe('Stream options includeUsage configuration', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('uses includeUsage from settings when undefined', () => {
|
it('uses includeUsage from settings when undefined', () => {
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState({ includeUsage: undefined }))
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const provider = createOpenAIProvider()
|
const provider = createOpenAIProvider()
|
||||||
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'openai'))
|
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'openai'))
|
||||||
@ -395,16 +385,7 @@ describe('Stream options includeUsage configuration', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('uses includeUsage from settings when set to true', () => {
|
it('uses includeUsage from settings when set to true', () => {
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState({ includeUsage: true }))
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const provider = createOpenAIProvider()
|
const provider = createOpenAIProvider()
|
||||||
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'openai'))
|
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'openai'))
|
||||||
@ -413,16 +394,7 @@ describe('Stream options includeUsage configuration', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('uses includeUsage from settings when set to false', () => {
|
it('uses includeUsage from settings when set to false', () => {
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState({ includeUsage: false }))
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const provider = createOpenAIProvider()
|
const provider = createOpenAIProvider()
|
||||||
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'openai'))
|
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'openai'))
|
||||||
@ -431,16 +403,7 @@ describe('Stream options includeUsage configuration', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('respects includeUsage setting for non-supporting providers', () => {
|
it('respects includeUsage setting for non-supporting providers', () => {
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState({ includeUsage: true }))
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const testProvider: Provider = {
|
const testProvider: Provider = {
|
||||||
id: 'test',
|
id: 'test',
|
||||||
@ -462,16 +425,7 @@ describe('Stream options includeUsage configuration', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('uses includeUsage from settings for Copilot provider when set to false', () => {
|
it('uses includeUsage from settings for Copilot provider when set to false', () => {
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState({ includeUsage: false }))
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const provider = createCopilotProvider()
|
const provider = createCopilotProvider()
|
||||||
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'copilot'))
|
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'copilot'))
|
||||||
@ -481,16 +435,7 @@ describe('Stream options includeUsage configuration', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('uses includeUsage from settings for Copilot provider when set to true', () => {
|
it('uses includeUsage from settings for Copilot provider when set to true', () => {
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState({ includeUsage: true }))
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const provider = createCopilotProvider()
|
const provider = createCopilotProvider()
|
||||||
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'copilot'))
|
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'copilot'))
|
||||||
@ -500,16 +445,7 @@ describe('Stream options includeUsage configuration', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('uses includeUsage from settings for Copilot provider when undefined', () => {
|
it('uses includeUsage from settings for Copilot provider when undefined', () => {
|
||||||
mockGetState.mockReturnValue({
|
mockGetState.mockReturnValue(createDefaultMockState({ includeUsage: undefined }))
|
||||||
copilot: { defaultHeaders: {} },
|
|
||||||
settings: {
|
|
||||||
openAI: {
|
|
||||||
streamOptions: {
|
|
||||||
includeUsage: undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const provider = createCopilotProvider()
|
const provider = createCopilotProvider()
|
||||||
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'copilot'))
|
const config = providerToAiSdkConfig(provider, createModel('gpt-4', 'GPT-4', 'copilot'))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user