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/codex-cli.test.ts
1import assert from "node:assert/strict";2import test from "node:test";34import type { CliArgs } from "../types.ts";5import {6getDefaultModel,7getDefaultOutputExtension,8validateArgs,9} from "./codex-cli.ts";1011function makeArgs(overrides: Partial<CliArgs> = {}): CliArgs {12return {13prompt: null,14promptFiles: [],15imagePath: null,16provider: "codex-cli",17model: null,18aspectRatio: null,19aspectRatioSource: null,20size: null,21quality: "2k",22imageSize: null,23imageSizeSource: null,24imageApiDialect: null,25referenceImages: [],26n: 1,27batchFile: null,28jobs: null,29json: false,30help: false,31...overrides,32};33}3435test("codex-cli defaults to codex-image-gen model and PNG output", () => {36assert.equal(getDefaultModel(), "codex-image-gen");37assert.equal(getDefaultOutputExtension(), ".png");38});3940test("codex-cli validateArgs rejects n>1 with a non-retryable message", () => {41assert.throws(42() => validateArgs("codex-image-gen", makeArgs({ n: 2 })),43/supports only n=1/,44);45});4647test("codex-cli validateArgs rejects ratio-metadata dialect", () => {48assert.throws(49() => validateArgs("codex-image-gen", makeArgs({ imageApiDialect: "ratio-metadata" })),50/Invalid imageApiDialect/,51);52});5354test("codex-cli validateArgs accepts default n=1 with no dialect", () => {55assert.doesNotThrow(() => validateArgs("codex-image-gen", makeArgs()));56});5758test("codex-cli validateArgs accepts reference images (Codex image_gen supports refs)", () => {59assert.doesNotThrow(() =>60validateArgs("codex-image-gen", makeArgs({ referenceImages: ["/tmp/a.png", "/tmp/b.png"] })),61);62});63