import { describe, it, expect, beforeEach, afterEach } from 'bun:test'
import { McpServer } from '../../mcp-server'
const originalEnv = process.env
describe('パフォーマンステスト', () => {
let server: McpServer
beforeEach(() => {
// テストごとに環境変数をクリア
process.env = { ...originalEnv }
server = new McpServer({
name: 'slack-mcp',
version: '1.0.0',
})
})
afterEach(async () => {
if (server) {
await server.closeServer()
}
// 環境変数を元に戻す
process.env = originalEnv
})
describe('同時リクエストの処理のテスト', () => {
beforeEach(() => {
process.env.SLACK_USER_TOKEN =
'xoxb-test-token-1234567890-1234567890123-AbCdEfGhIjKlMnOpQrStUvWx'
})
it('複数のリクエストを並行して処理できる', async () => {
await server.startServer()
// ツールハンドラーが async 関数であるため、複数のリクエストは並行処理される
// 実際の並行処理のテストは統合テストで行う
expect(server.server).toBeDefined()
})
it('非同期処理により、複数の検索リクエストを並行して処理する', async () => {
await server.startServer()
// 非同期処理により、複数の検索リクエストを並行して処理できることを確認
expect(server.server).toBeDefined()
})
})
describe('レート制限対応のテスト', () => {
beforeEach(() => {
process.env.SLACK_USER_TOKEN =
'xoxb-test-token-1234567890-1234567890123-AbCdEfGhIjKlMnOpQrStUvWx'
})
it('レート制限エラー時に適切にリトライする', async () => {
await server.startServer()
// レート制限エラー時のリトライロジックを確認
// 実際のレート制限エラーは統合テストで行う
expect(server.server).toBeDefined()
})
})
})