Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Generate images via OpenAI, Google, OpenRouter, DashScope, Jimeng, Seedream, and Replicate APIs with batch support.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
scripts/providers/openai.test.ts
1import assert from "node:assert/strict";2import test from "node:test";34import {5extractImageFromResponse,6getMimeType,7getOpenAISize,8parseAspectRatio,9} from "./openai.ts";1011test("OpenAI aspect-ratio parsing and size selection match model families", () => {12assert.deepEqual(parseAspectRatio("16:9"), { width: 16, height: 9 });13assert.equal(parseAspectRatio("wide"), null);14assert.equal(parseAspectRatio("0:1"), null);1516assert.equal(getOpenAISize("dall-e-3", "16:9", "2k"), "1792x1024");17assert.equal(getOpenAISize("dall-e-3", "9:16", "normal"), "1024x1792");18assert.equal(getOpenAISize("dall-e-2", "16:9", "2k"), "1024x1024");19assert.equal(getOpenAISize("gpt-image-1.5", "16:9", "2k"), "1536x1024");20assert.equal(getOpenAISize("gpt-image-1.5", "4:3", "2k"), "1024x1024");21});2223test("OpenAI mime-type detection covers supported reference image extensions", () => {24assert.equal(getMimeType("frame.png"), "image/png");25assert.equal(getMimeType("frame.jpg"), "image/jpeg");26assert.equal(getMimeType("frame.webp"), "image/webp");27assert.equal(getMimeType("frame.gif"), "image/gif");28});2930test("OpenAI response extraction supports base64 and URL download flows", async (t) => {31const originalFetch = globalThis.fetch;32t.after(() => {33globalThis.fetch = originalFetch;34});3536const fromBase64 = await extractImageFromResponse({37data: [{ b64_json: Buffer.from("hello").toString("base64") }],38});39assert.equal(Buffer.from(fromBase64).toString("utf8"), "hello");4041globalThis.fetch = async () =>42new Response(Uint8Array.from([1, 2, 3]), {43status: 200,44headers: { "Content-Type": "application/octet-stream" },45});4647const fromUrl = await extractImageFromResponse({48data: [{ url: "https://example.com/image.png" }],49});50assert.deepEqual([...fromUrl], [1, 2, 3]);5152await assert.rejects(53() => extractImageFromResponse({ data: [{}] }),54/No image in response/,55);56});57