diff --git a/tests/converters/assimp.test.ts b/tests/converters/assimp.test.ts index 01ba0ad..c7052fc 100644 --- a/tests/converters/assimp.test.ts +++ b/tests/converters/assimp.test.ts @@ -3,6 +3,7 @@ import { convert } from "../../src/converters/assimp.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -17,3 +18,7 @@ test("convert rejects when execFile fails", async () => { test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); + +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); diff --git a/tests/converters/calibre.test.ts b/tests/converters/calibre.test.ts index d060097..41fea53 100644 --- a/tests/converters/calibre.test.ts +++ b/tests/converters/calibre.test.ts @@ -3,6 +3,7 @@ import { convert } from "../../src/converters/calibre.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -17,3 +18,7 @@ test("convert rejects when execFile fails", async () => { test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); + +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); diff --git a/tests/converters/dvisvgm.test.ts b/tests/converters/dvisvgm.test.ts index 2c91a2f..b7211e4 100644 --- a/tests/converters/dvisvgm.test.ts +++ b/tests/converters/dvisvgm.test.ts @@ -5,6 +5,7 @@ import { ExecFileFn } from "../../src/converters/types.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -26,6 +27,10 @@ test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); + test("convert respects eps filetype", async () => { const originalConsoleLog = console.log; diff --git a/tests/converters/graphicsmagick.test.ts b/tests/converters/graphicsmagick.test.ts index df9bda8..8c038e2 100644 --- a/tests/converters/graphicsmagick.test.ts +++ b/tests/converters/graphicsmagick.test.ts @@ -3,6 +3,7 @@ import { convert } from "../../src/converters/graphicsmagick.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -17,3 +18,7 @@ test("convert rejects when execFile fails", async () => { test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); + +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); diff --git a/tests/converters/helpers/converters.ts b/tests/converters/helpers/converters.ts index 950c873..02aa084 100644 --- a/tests/converters/helpers/converters.ts +++ b/tests/converters/helpers/converters.ts @@ -65,3 +65,34 @@ export async function runConvertLogsStderror(convertFn: ConvertFnWithExecFile) { expect(loggedMessage).toBe("stderr: Fake stderr"); } + +export async function runConvertLogsStderrorAndStdout(convertFn: ConvertFnWithExecFile) { + const originalConsoleError = console.error; + const originalConsoleLog = console.log; + + let loggedError = ""; + let loggedMessage = ""; + console.error = (msg) => { + loggedError = msg; + }; + console.log = (msg) => { + loggedMessage = msg; + }; + + const mockExecFile = ( + _cmd: string, + _args: string[], + options: unknown, + callback: (err: Error | null, stdout: string, stderr: string) => void, + ) => { + callback(null, "Fake stdout", "Fake stderr"); + }; + + await convertFn("file.obj", "obj", "stl", "out.stl", undefined, mockExecFile); + + console.error = originalConsoleError; + console.log = originalConsoleLog; + + expect(loggedError).toBe("stderr: Fake stderr"); + expect(loggedMessage).toBe("stdout: Fake stdout"); +} diff --git a/tests/converters/imagemagick.test.ts b/tests/converters/imagemagick.test.ts index 06f1d13..de2467c 100644 --- a/tests/converters/imagemagick.test.ts +++ b/tests/converters/imagemagick.test.ts @@ -5,6 +5,7 @@ import { ExecFileFn } from "../../src/converters/types.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -26,6 +27,10 @@ test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); + test("convert respects ico conversion target type", async () => { const originalConsoleLog = console.log; diff --git a/tests/converters/inkscape.test.ts b/tests/converters/inkscape.test.ts index 39d21c3..f61746e 100644 --- a/tests/converters/inkscape.test.ts +++ b/tests/converters/inkscape.test.ts @@ -3,6 +3,7 @@ import { convert } from "../../src/converters/inkscape.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -17,3 +18,7 @@ test("convert rejects when execFile fails", async () => { test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); + +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); diff --git a/tests/converters/libheif.test.ts b/tests/converters/libheif.test.ts index 33625c5..267734d 100644 --- a/tests/converters/libheif.test.ts +++ b/tests/converters/libheif.test.ts @@ -3,6 +3,7 @@ import { convert } from "../../src/converters/libheif.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -17,3 +18,7 @@ test("convert rejects when execFile fails", async () => { test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); + +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); diff --git a/tests/converters/libjxl.test.ts b/tests/converters/libjxl.test.ts index ed352d6..e96c5f8 100644 --- a/tests/converters/libjxl.test.ts +++ b/tests/converters/libjxl.test.ts @@ -5,6 +5,7 @@ import { ExecFileFn } from "../../src/converters/types.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -26,6 +27,10 @@ test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); + test("convert uses djxl with input filetype being jxl", async () => { const originalConsoleLog = console.log; diff --git a/tests/converters/potrace.test.ts b/tests/converters/potrace.test.ts index 5f37450..f1852a7 100644 --- a/tests/converters/potrace.test.ts +++ b/tests/converters/potrace.test.ts @@ -3,6 +3,7 @@ import { convert } from "../../src/converters/potrace.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -17,3 +18,7 @@ test("convert rejects when execFile fails", async () => { test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); + +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); diff --git a/tests/converters/resvg.test.ts b/tests/converters/resvg.test.ts index d2eae2f..cdcb6b9 100644 --- a/tests/converters/resvg.test.ts +++ b/tests/converters/resvg.test.ts @@ -3,6 +3,7 @@ import { convert } from "../../src/converters/resvg.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -17,3 +18,7 @@ test("convert rejects when execFile fails", async () => { test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); + +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); diff --git a/tests/converters/vips.test.ts b/tests/converters/vips.test.ts index d7ea9d8..2aa2181 100644 --- a/tests/converters/vips.test.ts +++ b/tests/converters/vips.test.ts @@ -5,6 +5,7 @@ import { convert } from "../../src/converters/vips.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -26,6 +27,10 @@ test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +}); + test("convert uses action pdfload with filetype being pdf", async () => { const originalConsoleLog = console.log; diff --git a/tests/converters/xelatex.test.ts b/tests/converters/xelatex.test.ts index 5d81d09..5794b70 100644 --- a/tests/converters/xelatex.test.ts +++ b/tests/converters/xelatex.test.ts @@ -3,6 +3,7 @@ import { convert } from "../../src/converters/xelatex.ts"; import { runConvertFailTest, runConvertLogsStderror, + runConvertLogsStderrorAndStdout, runConvertSuccessTest, } from "./helpers/converters.ts"; @@ -17,3 +18,7 @@ test("convert rejects when execFile fails", async () => { test("convert logs stderr when present", async () => { await runConvertLogsStderror(convert); }); + +test("convert logs both stderr and stdout when present", async () => { + await runConvertLogsStderrorAndStdout(convert); +});