@baruchiro/paperless-mcp
Version:
Model Context Protocol (MCP) server for interacting with Paperless-NGX document management system. Enables AI assistants to manage documents, tags, correspondents, and document types through the Paperless-NGX API.
55 lines (54 loc) • 2.24 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_1 = require("node:test");
const strict_1 = __importDefault(require("node:assert/strict"));
const server_1 = require("./server");
function reqWith(authorization) {
return {
headers: authorization ? { authorization } : {},
};
}
(0, node_test_1.test)("client Bearer token takes precedence over the server token", () => {
const token = (0, server_1.getBearerToken)(reqWith("Bearer client-token"), {
fallbackToken: "server-token",
allowAnonymous: true,
});
strict_1.default.equal(token, "client-token");
});
(0, node_test_1.test)("client Bearer token is used even when anonymous access is disabled", () => {
const token = (0, server_1.getBearerToken)(reqWith("Bearer client-token"), {
fallbackToken: "server-token",
allowAnonymous: false,
});
strict_1.default.equal(token, "client-token");
});
(0, node_test_1.test)("falls back to the server token only when anonymous access is allowed", () => {
const token = (0, server_1.getBearerToken)(reqWith(), {
fallbackToken: "server-token",
allowAnonymous: true,
});
strict_1.default.equal(token, "server-token");
});
(0, node_test_1.test)("no header without anonymous access yields no token (request is rejected)", () => {
const token = (0, server_1.getBearerToken)(reqWith(), {
fallbackToken: "server-token",
allowAnonymous: false,
});
strict_1.default.equal(token, undefined);
});
(0, node_test_1.test)("non-Bearer Authorization scheme never leaks the server token by default", () => {
const token = (0, server_1.getBearerToken)(reqWith("Token server-token"), {
fallbackToken: "server-token",
allowAnonymous: false,
});
strict_1.default.equal(token, undefined);
});
(0, node_test_1.test)("anonymous access with no configured server token yields no token", () => {
const token = (0, server_1.getBearerToken)(reqWith(), {
allowAnonymous: true,
});
strict_1.default.equal(token, undefined);
});