Files
iofficeai--aionui/tests/unit/common/OpenAI2GeminiConverter.test.ts
2026-07-13 13:20:22 +08:00

55 lines
1.5 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { OpenAI2GeminiConverter } from '@/common/api/OpenAI2GeminiConverter';
describe('OpenAI2GeminiConverter', () => {
it('requests image and text modalities for image generation prompts', () => {
const converter = new OpenAI2GeminiConverter();
const request = converter.convertRequest({
model: 'gemini-3-pro-image-preview',
messages: [{ role: 'user', content: 'Generate image: a glass cup' }],
});
expect(request.generationConfig?.responseModalities).toEqual(['IMAGE', 'TEXT']);
});
it('converts Gemini inline image data to OpenAI-compatible message images', () => {
const converter = new OpenAI2GeminiConverter();
const response = converter.convertResponse(
{
candidates: [
{
finishReason: 'STOP',
content: {
parts: [
{ text: 'done' },
{
inlineData: {
mimeType: 'image/png',
data: 'ZmFrZS1pbWFnZQ==',
},
},
],
},
},
],
usageMetadata: {
promptTokenCount: 1,
candidatesTokenCount: 2,
totalTokenCount: 3,
},
},
'gemini-3-pro-image-preview'
);
expect(response.choices[0].message.images).toEqual([
{
type: 'image_url',
image_url: { url: 'data:image/png;base64,ZmFrZS1pbWFnZQ==' },
},
]);
});
});