UNPKG

actionhero

Version:

The reusable, scalable, and quick node.js API server for stateless and stateful applications

82 lines (70 loc) 2.4 kB
import * as ChildProcess from "child_process"; process.env.ACTIONHERO_CONFIG_OVERRIDES = JSON.stringify({ plugins: {}, }); import { api, Process, specHelper } from "../../../src/index"; const actionhero = new Process(); async function exec( command: string, args: Record<string, any>, ): Promise<{ error?: NodeJS.ErrnoException; stdout?: string; stderr?: string; }> { return new Promise((resolve, reject) => { ChildProcess.exec(command, args, (error, stdout, stderr) => { if (error) { return reject(error); } return resolve({ stdout: stdout.toString(), stderr: stderr.toString() }); }); }); } describe("Core: Plugins", () => { describe("without plugin", () => { beforeAll(async () => { await actionhero.start(); }); afterAll(async () => { await actionhero.stop(); }); test("will not load an action from an un-loaded plugin", async () => { const response = await specHelper.runAction("pluginAction"); expect(response.error).toMatch(/unknown action or invalid apiVersion/); }); test("will not load a task from an un-loaded plugin", () => { expect(api.tasks.tasks.pluginTask).not.toBeTruthy(); expect(api.tasks.jobs.pluginTask).not.toBeTruthy(); }); test("will not load an initializer from an un-loaded plugin", () => { expect(api.pluginInitializer).not.toBeTruthy(); }); // test('will not load a server from an un-loaded plugin') test("will not serve static files from an un-loaded plugin", async () => { const file = await specHelper.getStaticFile("plugin.html"); expect(file.error).toMatch(/file is not found/); }); test( "will not load CLI command from an un-loaded plugin", async () => { const { stdout: helpResponse, stderr: error1 } = await exec( "./node_modules/.bin/ts-node ./src/bin/actionhero.ts help", { env: process.env }, ); expect(error1).toEqual(""); expect(helpResponse).not.toContain("hello"); try { await exec( "./node_modules/.bin/ts-node ./src/bin/actionhero.ts hello", { env: process.env }, ); throw new Error("should not get here"); } catch (error) { expect(error.toString()).toMatch(/unknown command 'hello'/); } }, 30 * 1000, ); }); });