/** * Shared GitHub API mocking utilities for tests. * Used by both CLI and core module tests. */ import nock from "nock"; import type { ArchivedTask, Task, TaskStore } from "../types.js"; export interface GitHubIssueFixture { number: number; title: string; body?: string | null; state: "open" | "closed"; labels?: Array<{ name: string; }>; pull_request?: unknown; } export interface GitHubMock { scope: nock.Scope; getIssue: (owner: string, repo: string, number: number, response: GitHubIssueFixture) => void; getIssue404: (owner: string, repo: string, number: number) => void; getIssue401: (owner: string, repo: string, number: number) => void; getIssue403: (owner: string, repo: string, number: number, rateLimited?: boolean) => void; getIssue500: (owner: string, repo: string, number: number) => void; getIssueTimeout: (owner: string, repo: string, number: number) => void; listIssues: (owner: string, repo: string, response: GitHubIssueFixture[]) => void; listIssues401: (owner: string, repo: string) => void; listIssues403: (owner: string, repo: string, rateLimited?: boolean) => void; listIssues404: (owner: string, repo: string) => void; listIssues500: (owner: string, repo: string) => void; listIssuesTimeout: (owner: string, repo: string) => void; createIssue: (owner: string, repo: string, response: GitHubIssueFixture) => void; createIssue401: (owner: string, repo: string) => void; createIssue403: (owner: string, repo: string, rateLimited?: boolean) => void; createIssue500: (owner: string, repo: string) => void; updateIssue: (owner: string, repo: string, number: number, response: GitHubIssueFixture) => void; updateIssue401: (owner: string, repo: string, number: number) => void; updateIssue403: (owner: string, repo: string, number: number, rateLimited?: boolean) => void; updateIssue404: (owner: string, repo: string, number: number) => void; updateIssue500: (owner: string, repo: string, number: number) => void; done: () => void; } /** * Set up nock interceptors for GitHub API. * Call mock.done() in afterEach to verify all expected requests were made. */ export declare function setupGitHubMock(): GitHubMock; /** * Clean up all nock interceptors. * Call in afterEach to reset state between tests. */ export declare function cleanupGitHubMock(): void; /** * Create a minimal GitHub issue fixture. */ export declare function createIssueFixture(overrides: Partial & { number: number; }): GitHubIssueFixture; /** * Create a minimal Task fixture for testing. */ export declare function createTask(overrides?: Partial): Task; /** * Create a minimal TaskStore fixture for testing. */ export declare function createStore(tasks?: Task[]): TaskStore; /** * Create an ArchivedTask with sensible defaults for testing. */ export declare function createArchivedTask(overrides?: Partial): ArchivedTask; //# sourceMappingURL=github-mock.d.ts.map