79 lines
2.3 KiB
TypeScript
79 lines
2.3 KiB
TypeScript
import { describe, it } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import {
|
|
getAllMiddlewareHooks,
|
|
getEnabledMiddlewareHooks,
|
|
createMiddlewareHook,
|
|
updateMiddlewareHook,
|
|
deleteMiddlewareHook,
|
|
getMiddlewareHook,
|
|
recordHookExecution,
|
|
} from "../../src/lib/db/middleware.ts";
|
|
|
|
describe("middleware hooks DB", () => {
|
|
const hookName = `test-hook-${Date.now()}`;
|
|
|
|
const hookConfig = {
|
|
name: hookName,
|
|
description: "Test hook",
|
|
priority: 100,
|
|
scope: { type: "global" as const },
|
|
enabled: true,
|
|
code: "return request;",
|
|
createdAt: new Date().toISOString(),
|
|
updatedAt: new Date().toISOString(),
|
|
runCount: 0,
|
|
};
|
|
|
|
it("createMiddlewareHook creates a hook", () => {
|
|
createMiddlewareHook(hookConfig);
|
|
const found = getMiddlewareHook(hookName);
|
|
assert.ok(found, "should find created hook");
|
|
assert.equal(found!.name, hookName);
|
|
assert.equal(found!.enabled, true);
|
|
});
|
|
|
|
it("getAllMiddlewareHooks returns all hooks", () => {
|
|
const all = getAllMiddlewareHooks();
|
|
assert.ok(Array.isArray(all));
|
|
assert.ok(all.length >= 1);
|
|
});
|
|
|
|
it("getEnabledMiddlewareHooks returns only enabled", () => {
|
|
const disabledName = `disabled-${Date.now()}`;
|
|
createMiddlewareHook({
|
|
...hookConfig,
|
|
name: disabledName,
|
|
enabled: false,
|
|
});
|
|
const enabled = getEnabledMiddlewareHooks();
|
|
assert.ok(enabled.every((h) => h.enabled));
|
|
});
|
|
|
|
it("updateMiddlewareHook updates existing hook", () => {
|
|
updateMiddlewareHook(hookName, { description: "updated" });
|
|
const found = getMiddlewareHook(hookName);
|
|
assert.equal(found!.description, "updated");
|
|
});
|
|
|
|
it("recordHookExecution increments run count", () => {
|
|
recordHookExecution(hookName);
|
|
const found = getMiddlewareHook(hookName);
|
|
assert.ok(found!.runCount >= 1);
|
|
});
|
|
|
|
it("recordHookExecution with error sets lastError", () => {
|
|
recordHookExecution(hookName, "test error");
|
|
const found = getMiddlewareHook(hookName);
|
|
assert.equal(found!.lastError, "test error");
|
|
});
|
|
|
|
it("deleteMiddlewareHook removes hook", () => {
|
|
const delName = `del-hook-${Date.now()}`;
|
|
createMiddlewareHook({ ...hookConfig, name: delName });
|
|
deleteMiddlewareHook(delName);
|
|
assert.equal(getMiddlewareHook(delName), undefined);
|
|
});
|
|
});
|