
























@@ -286,7 +286,7 @@ describe("createImageGenerateTool", () => {
286286throw new Error("runtime provider list should not run during tool registration");
287287});
288288289-expect(
289+requireImageGenerateTool(
290290createImageGenerateTool({
291291config: {
292292agents: {
@@ -298,7 +298,7 @@ describe("createImageGenerateTool", () => {
298298},
299299},
300300}),
301-).not.toBeNull();
301+);
302302expect(listProviders).not.toHaveBeenCalled();
303303});
304304@@ -325,7 +325,7 @@ describe("createImageGenerateTool", () => {
325325},
326326]);
327327328-expect(
328+requireImageGenerateTool(
329329createImageGenerateTool({
330330config: {
331331agents: {
@@ -337,7 +337,7 @@ describe("createImageGenerateTool", () => {
337337},
338338},
339339}),
340-).not.toBeNull();
340+);
341341});
342342343343it("infers an OpenAI image-generation model from env-backed auth", () => {
@@ -347,7 +347,7 @@ describe("createImageGenerateTool", () => {
347347expect(resolveImageGenerationModelConfigForTool({ cfg: {} })).toEqual({
348348primary: "openai/gpt-image-1",
349349});
350-expect(createImageGenerateTool({ config: {} })).not.toBeNull();
350+requireImageGenerateTool(createImageGenerateTool({ config: {} }));
351351});
352352353353it("does not load runtime providers while resolving an explicitly configured model", () => {
@@ -410,7 +410,7 @@ describe("createImageGenerateTool", () => {
410410).toEqual({
411411primary: "openai/gpt-image-2",
412412});
413-expect(createImageGenerateTool({ config: {}, agentDir: "/tmp/agent" })).not.toBeNull();
413+requireImageGenerateTool(createImageGenerateTool({ config: {}, agentDir: "/tmp/agent" }));
414414expect(isConfigured).toHaveBeenCalledWith({
415415cfg: {},
416416agentDir: "/tmp/agent",
@@ -548,24 +548,21 @@ describe("createImageGenerateTool", () => {
548548contentType: "image/png",
549549});
550550551-const tool = createImageGenerateTool({
552-config: {
553-agents: {
554-defaults: {
555-mediaMaxMb: 8,
556-imageGenerationModel: {
557-primary: "openai/gpt-image-1",
551+const tool = requireImageGenerateTool(
552+createImageGenerateTool({
553+config: {
554+agents: {
555+defaults: {
556+mediaMaxMb: 8,
557+imageGenerationModel: {
558+primary: "openai/gpt-image-1",
559+},
558560},
559561},
560562},
561-},
562-agentDir: "/tmp/agent",
563-});
564-565-expect(tool).not.toBeNull();
566-if (!tool) {
567-throw new Error("expected image_generate tool");
568-}
563+agentDir: "/tmp/agent",
564+}),
565+);
569566570567const result = await tool.execute("call-1", {
571568prompt: "A cat wearing sunglasses",
@@ -856,19 +853,17 @@ describe("createImageGenerateTool", () => {
856853contentType: "image/jpeg",
857854});
858855859-const tool = createImageGenerateTool({
860-config: {
861-agents: {
862-defaults: {
863-imageGenerationModel: { primary: "google/gemini-3.1-flash-image-preview" },
856+const tool = requireImageGenerateTool(
857+createImageGenerateTool({
858+config: {
859+agents: {
860+defaults: {
861+imageGenerationModel: { primary: "google/gemini-3.1-flash-image-preview" },
862+},
864863},
865864},
866-},
867-});
868-expect(tool).not.toBeNull();
869-if (!tool) {
870-throw new Error("expected image_generate tool");
871-}
865+}),
866+);
872867873868const result = await tool.execute("call-regression", { prompt: "kodo sawaki zazen" });
874869const text = (result.content?.[0] as { text: string } | undefined)?.text ?? "";
@@ -913,21 +908,19 @@ describe("createImageGenerateTool", () => {
913908}),
914909},
915910]);
916-const tool = createImageGenerateTool({
917-config: {
918-agents: {
919-defaults: {
920-imageGenerationModel: {
921-primary: "google/gemini-3.1-flash-image-preview",
911+const tool = requireImageGenerateTool(
912+createImageGenerateTool({
913+config: {
914+agents: {
915+defaults: {
916+imageGenerationModel: {
917+primary: "google/gemini-3.1-flash-image-preview",
918+},
922919},
923920},
924921},
925-},
926-});
927-expect(tool).not.toBeNull();
928-if (!tool) {
929-throw new Error("expected image_generate tool");
930-}
922+}),
923+);
931924932925await expect(tool.execute("call-2", { prompt: "too many cats", count: 5 })).rejects.toThrow(
933926"count must be between 1 and 4",
@@ -1363,22 +1356,19 @@ describe("createImageGenerateTool", () => {
13631356it("rejects unsupported aspect ratios", async () => {
13641357stubImageGenerationProviders();
136513581366-const tool = createImageGenerateTool({
1367-config: {
1368-agents: {
1369-defaults: {
1370-imageGenerationModel: {
1371-primary: "google/gemini-3-pro-image-preview",
1359+const tool = requireImageGenerateTool(
1360+createImageGenerateTool({
1361+config: {
1362+agents: {
1363+defaults: {
1364+imageGenerationModel: {
1365+primary: "google/gemini-3-pro-image-preview",
1366+},
13721367},
13731368},
13741369},
1375-},
1376-});
1377-1378-expect(tool).not.toBeNull();
1379-if (!tool) {
1380-throw new Error("expected image_generate tool");
1381-}
1370+}),
1371+);
1382137213831373await expect(
13841374tool.execute("call-bad-aspect", { prompt: "portrait", aspectRatio: "7:5" }),
@@ -1390,22 +1380,19 @@ describe("createImageGenerateTool", () => {
13901380it("lists registered provider and model options", async () => {
13911381stubImageGenerationProviders();
139213821393-const tool = createImageGenerateTool({
1394-config: {
1395-agents: {
1396-defaults: {
1397-imageGenerationModel: {
1398-primary: "google/gemini-3.1-flash-image-preview",
1383+const tool = requireImageGenerateTool(
1384+createImageGenerateTool({
1385+config: {
1386+agents: {
1387+defaults: {
1388+imageGenerationModel: {
1389+primary: "google/gemini-3.1-flash-image-preview",
1390+},
13991391},
14001392},
14011393},
1402-},
1403-});
1404-1405-expect(tool).not.toBeNull();
1406-if (!tool) {
1407-throw new Error("expected image_generate tool");
1408-}
1394+}),
1395+);
1409139614101397const result = await tool.execute("call-list", { action: "list" });
14111398const text = (result.content?.[0] as { text: string } | undefined)?.text ?? "";
@@ -1467,22 +1454,19 @@ describe("createImageGenerateTool", () => {
14671454},
14681455]);
146914561470-const tool = createImageGenerateTool({
1471-config: {
1472-agents: {
1473-defaults: {
1474-imageGenerationModel: {
1475-primary: "__proto__/proto-v1",
1457+const tool = requireImageGenerateTool(
1458+createImageGenerateTool({
1459+config: {
1460+agents: {
1461+defaults: {
1462+imageGenerationModel: {
1463+primary: "__proto__/proto-v1",
1464+},
14761465},
14771466},
14781467},
1479-},
1480-});
1481-1482-expect(tool).not.toBeNull();
1483-if (!tool) {
1484-throw new Error("expected image_generate tool");
1485-}
1468+}),
1469+);
1486147014871471const result = await tool.execute("call-list-proto", { action: "list" });
14881472const text = (result.content?.[0] as { text: string } | undefined)?.text ?? "";
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。