From 2985fc0e3234b1ac76c2db3fe9bcb5db59e8494d Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 6 Apr 2026 01:36:24 +0100 Subject: [PATCH] test: add irc runtime api smoke coverage --- extensions/irc/runtime-api.test.ts | 55 ++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 extensions/irc/runtime-api.test.ts diff --git a/extensions/irc/runtime-api.test.ts b/extensions/irc/runtime-api.test.ts new file mode 100644 index 00000000000..a97ef7135b6 --- /dev/null +++ b/extensions/irc/runtime-api.test.ts @@ -0,0 +1,55 @@ +import { execFile } from "node:child_process"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { promisify } from "node:util"; +import { describe, expect, it } from "vitest"; + +const execFileAsync = promisify(execFile); +const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", ".."); +const ircImportEnv = { + HOME: process.env.HOME, + NODE_OPTIONS: process.env.NODE_OPTIONS, + NODE_PATH: process.env.NODE_PATH, + PATH: process.env.PATH, + TERM: process.env.TERM, +} satisfies NodeJS.ProcessEnv; + +describe("irc bundled api seams", () => { + it("loads the narrow channel plugin api in direct smoke", async () => { + const { stdout } = await execFileAsync( + process.execPath, + [ + "--import", + "tsx", + "-e", + 'const mod = await import("./extensions/irc/channel-plugin-api.ts"); process.stdout.write(JSON.stringify({keys:Object.keys(mod).sort(), id: mod.ircPlugin.id}));', + ], + { + cwd: repoRoot, + env: ircImportEnv, + timeout: 40_000, + }, + ); + + expect(stdout).toBe('{"keys":["ircPlugin"],"id":"irc"}'); + }, 45_000); + + it("loads the narrow runtime api in direct smoke", async () => { + const { stdout } = await execFileAsync( + process.execPath, + [ + "--import", + "tsx", + "-e", + 'const mod = await import("./extensions/irc/runtime-api.ts"); process.stdout.write(JSON.stringify({keys:Object.keys(mod).sort(), type: typeof mod.setIrcRuntime}));', + ], + { + cwd: repoRoot, + env: ircImportEnv, + timeout: 40_000, + }, + ); + + expect(stdout).toBe('{"keys":["setIrcRuntime"],"type":"function"}'); + }, 45_000); +});