MCP Server Example with PRPs
This commit is contained in:
59
use-cases/mcp-server/tests/mocks/github.mock.ts
Normal file
59
use-cases/mcp-server/tests/mocks/github.mock.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import { vi } from 'vitest'
|
||||
import { mockGitHubUser, mockAccessToken } from '../fixtures/auth.fixtures'
|
||||
|
||||
// Mock Octokit
|
||||
export const mockOctokit = {
|
||||
rest: {
|
||||
users: {
|
||||
getAuthenticated: vi.fn(),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
vi.mock('octokit', () => ({
|
||||
Octokit: vi.fn(() => mockOctokit),
|
||||
}))
|
||||
|
||||
// Mock GitHub API responses
|
||||
export function setupGitHubMocks() {
|
||||
mockOctokit.rest.users.getAuthenticated.mockResolvedValue(mockGitHubUser)
|
||||
}
|
||||
|
||||
export function setupGitHubError() {
|
||||
mockOctokit.rest.users.getAuthenticated.mockRejectedValue(new Error('GitHub API error'))
|
||||
}
|
||||
|
||||
export function setupGitHubUnauthorized() {
|
||||
mockOctokit.rest.users.getAuthenticated.mockRejectedValue(new Error('Bad credentials'))
|
||||
}
|
||||
|
||||
export function resetGitHubMocks() {
|
||||
vi.clearAllMocks()
|
||||
setupGitHubMocks()
|
||||
}
|
||||
|
||||
// Mock fetch for GitHub OAuth token exchange
|
||||
export function setupGitHubTokenExchange() {
|
||||
global.fetch = vi.fn((url: string) => {
|
||||
if (url.includes('github.com/login/oauth/access_token')) {
|
||||
return Promise.resolve({
|
||||
ok: true,
|
||||
text: () => Promise.resolve(`access_token=${mockAccessToken}&token_type=bearer&scope=read:user`),
|
||||
} as Response)
|
||||
}
|
||||
return Promise.reject(new Error('Unexpected fetch call'))
|
||||
})
|
||||
}
|
||||
|
||||
export function setupGitHubTokenExchangeError() {
|
||||
global.fetch = vi.fn((url: string) => {
|
||||
if (url.includes('github.com/login/oauth/access_token')) {
|
||||
return Promise.resolve({
|
||||
ok: false,
|
||||
status: 400,
|
||||
text: () => Promise.resolve('error=invalid_grant&error_description=Bad verification code.'),
|
||||
} as Response)
|
||||
}
|
||||
return Promise.reject(new Error('Unexpected fetch call'))
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user