36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
|
|
import { tap, expect } from '@git.zone/tstest/tapbundle';
|
||
|
|
import * as qenv from '@push.rocks/qenv';
|
||
|
|
import { generateImage } from '../ts_image/index.js';
|
||
|
|
|
||
|
|
const testQenv = new qenv.Qenv('./', './.nogit/');
|
||
|
|
|
||
|
|
tap.test('generateImage should return an image response', async () => {
|
||
|
|
const apiKey = await testQenv.getEnvVarOnDemand('OPENAI_TOKEN');
|
||
|
|
if (!apiKey) {
|
||
|
|
console.log('OPENAI_TOKEN not set, skipping test');
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
const result = await generateImage({
|
||
|
|
apiKey,
|
||
|
|
prompt: 'A simple red circle on a white background',
|
||
|
|
model: 'gpt-image-1',
|
||
|
|
size: '1024x1024',
|
||
|
|
quality: 'low',
|
||
|
|
n: 1,
|
||
|
|
});
|
||
|
|
|
||
|
|
console.log('Image generation result: images count =', result.images.length);
|
||
|
|
expect(result.images).toBeArray();
|
||
|
|
expect(result.images.length).toBeGreaterThan(0);
|
||
|
|
|
||
|
|
const firstImage = result.images[0];
|
||
|
|
// gpt-image-1 returns b64_json by default
|
||
|
|
expect(firstImage.b64_json || firstImage.url).toBeTruthy();
|
||
|
|
|
||
|
|
expect(result.metadata).toBeTruthy();
|
||
|
|
expect(result.metadata!.model).toEqual('gpt-image-1');
|
||
|
|
});
|
||
|
|
|
||
|
|
export default tap.start();
|