fix(ccswitch): add codex model to import deeplink
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import {
|
||||
OPENAI_CC_SWITCH_CODEX_MODEL,
|
||||
buildCcSwitchImportDeeplink
|
||||
} from '@/utils/ccswitchImport'
|
||||
import type { GroupPlatform } from '@/types'
|
||||
|
||||
function paramsFromDeeplink(deeplink: string): URLSearchParams {
|
||||
const query = deeplink.split('?')[1] || ''
|
||||
return new URLSearchParams(query)
|
||||
}
|
||||
|
||||
describe('ccswitchImport utils', () => {
|
||||
const baseInput = {
|
||||
baseUrl: 'https://api.example.com',
|
||||
providerName: 'Sub2API',
|
||||
apiKey: 'sk-test',
|
||||
usageScript: 'return true'
|
||||
}
|
||||
|
||||
it('adds the Codex model parameter for OpenAI imports', () => {
|
||||
const params = paramsFromDeeplink(
|
||||
buildCcSwitchImportDeeplink({
|
||||
...baseInput,
|
||||
platform: 'openai',
|
||||
clientType: 'claude'
|
||||
})
|
||||
)
|
||||
|
||||
expect(params.get('resource')).toBe('provider')
|
||||
expect(params.get('app')).toBe('codex')
|
||||
expect(params.get('endpoint')).toBe(baseInput.baseUrl)
|
||||
expect(params.get('model')).toBe(OPENAI_CC_SWITCH_CODEX_MODEL)
|
||||
expect(atob(params.get('usageScript') || '')).toBe(baseInput.usageScript)
|
||||
})
|
||||
|
||||
it.each([
|
||||
{ platform: 'anthropic' as GroupPlatform, clientType: 'claude' as const, app: 'claude' },
|
||||
{ platform: 'gemini' as GroupPlatform, clientType: 'gemini' as const, app: 'gemini' }
|
||||
])('does not add a model parameter for $platform imports', ({ platform, clientType, app }) => {
|
||||
const params = paramsFromDeeplink(
|
||||
buildCcSwitchImportDeeplink({
|
||||
...baseInput,
|
||||
platform,
|
||||
clientType
|
||||
})
|
||||
)
|
||||
|
||||
expect(params.get('app')).toBe(app)
|
||||
expect(params.get('endpoint')).toBe(baseInput.baseUrl)
|
||||
expect(params.has('model')).toBe(false)
|
||||
})
|
||||
|
||||
it('keeps Antigravity imports on the selected client endpoint without a model parameter', () => {
|
||||
const params = paramsFromDeeplink(
|
||||
buildCcSwitchImportDeeplink({
|
||||
...baseInput,
|
||||
platform: 'antigravity',
|
||||
clientType: 'gemini'
|
||||
})
|
||||
)
|
||||
|
||||
expect(params.get('app')).toBe('gemini')
|
||||
expect(params.get('endpoint')).toBe(`${baseInput.baseUrl}/antigravity`)
|
||||
expect(params.has('model')).toBe(false)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user