systemprompt-mcp-core
Version:
A specialized Model Context Protocol (MCP) server that integrates with systemprompt.io to provide powerful prompt management capabilities. This server enables seamless creation, management, and versioning of system prompts and agents through MCP. It works
58 lines (57 loc) • 2.46 kB
JavaScript
import { handleListResources, handleReadResource, } from "../resource-handlers.js";
describe("Resource Handlers", () => {
describe("handleListResources", () => {
it("should return list of available resources", async () => {
const result = await handleListResources();
expect(result).toHaveProperty("resources");
expect(Array.isArray(result.resources)).toBe(true);
expect(result.resources).toHaveLength(2);
// Check for expected resources
const resourceNames = result.resources.map((r) => r.name);
expect(resourceNames).toContain("API Schema Documentation");
expect(resourceNames).toContain("Prompt Documentation");
// Check resource structure
result.resources.forEach((resource) => {
expect(resource).toHaveProperty("uri");
expect(resource).toHaveProperty("mimeType", "text/plain");
expect(resource).toHaveProperty("name");
expect(resource).toHaveProperty("description");
});
});
});
describe("handleReadResource", () => {
it("should return API schema docs content", async () => {
const result = await handleReadResource({
params: { uri: "resource:///api-schema" },
});
expect(result).toEqual({
contents: [
{
uri: "resource:///api-schema",
mimeType: "text/plain",
text: "https://api.systemprompt.io/v1/schema",
},
],
});
});
it("should return prompt docs content", async () => {
const result = await handleReadResource({
params: { uri: "resource:///prompt-docs" },
});
expect(result).toEqual({
contents: [
{
uri: "resource:///prompt-docs",
mimeType: "text/plain",
text: "https://systemprompt.io/resource/prompt",
},
],
});
});
it("should throw error for unknown resource", async () => {
await expect(handleReadResource({
params: { uri: "resource:///unknown" },
})).rejects.toThrow("Resource unknown not found");
});
});
});