Skip to main content
Glama

JIRA MCP Server

project-mock-factory.ts2.4 kB
/** * Project mock factory for testing */ import { type Mock, mock } from "bun:test"; import type { GetProjectsOptions, Project, ProjectPermissions, ProjectSearchResponse, } from "@features/jira/projects/models"; import type { ProjectRepository } from "@features/jira/projects/repositories"; /** * Creates a mock project repository */ export function createMockProjectRepository() { return { getProjects: mock() as Mock< (options?: GetProjectsOptions) => Promise<Project[]> >, getProject: mock() as Mock< (projectKey: string, expand?: string[]) => Promise<Project> >, searchProjects: mock() as Mock< (query: string, maxResults?: number) => Promise<Project[]> >, getProjectPermissions: mock() as Mock< (projectKey: string) => Promise<ProjectPermissions> >, } as ProjectRepository; } /** * Creates a mock project */ export function createMockProject(overrides: Partial<Project> = {}): Project { return { id: "10000", key: "TEST", name: "Test Project", self: "https://test.atlassian.net/rest/api/3/project/10000", projectTypeKey: "software", simplified: true, style: "next-gen", isPrivate: false, ...overrides, }; } /** * Creates a mock project list */ export function createMockProjectList(count = 3): Project[] { return Array(count) .fill(null) .map((_, index) => ({ id: `${10000 + index}`, key: `TEST${index + 1}`, name: `Test Project ${index + 1}`, self: `https://test.atlassian.net/rest/api/3/project/${10000 + index}`, projectTypeKey: "software", simplified: true, style: "next-gen", isPrivate: false, })); } /** * Creates a mock paginated project search response */ export function createMockProjectSearchResponse( projects: Project[] = createMockProjectList(), options: { startAt?: number; maxResults?: number; total?: number; isLast?: boolean; } = {}, ): ProjectSearchResponse { const { startAt = 0, maxResults = 50, total = projects.length, isLast = true, } = options; return { self: "https://test.atlassian.net/rest/api/3/project/search", nextPage: isLast ? undefined : `https://test.atlassian.net/rest/api/3/project/search?startAt=${startAt + maxResults}`, maxResults, startAt, total, isLast, values: projects, }; }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dsazz/mcp-jira'

If you have feedback or need assistance with the MCP directory API, please join our Discord server