@search-docs/mcp-server 1.0.22 → 1.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -4
- package/dist/__tests__/server-state-transition-v2.test.d.ts +0 -7
- package/dist/__tests__/server-state-transition-v2.test.d.ts.map +0 -1
- package/dist/__tests__/server-state-transition-v2.test.js +0 -182
- package/dist/__tests__/server-state-transition-v2.test.js.map +0 -1
- package/dist/server-state-transition.test.d.ts +0 -9
- package/dist/server-state-transition.test.d.ts.map +0 -1
- package/dist/server-state-transition.test.js +0 -267
- package/dist/server-state-transition.test.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@search-docs/mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.24",
|
|
4
4
|
"description": "MCP Server for search-docs - Claude Code integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/server.js",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"@modelcontextprotocol/sdk": "^1.17.0",
|
|
17
17
|
"commander": "^12.0.0",
|
|
18
18
|
"zod": "^3.22.0",
|
|
19
|
-
"@search-docs/client": "1.0.
|
|
20
|
-
"@search-docs/
|
|
21
|
-
"@search-docs/
|
|
19
|
+
"@search-docs/client": "1.0.12",
|
|
20
|
+
"@search-docs/cli": "1.0.19",
|
|
21
|
+
"@search-docs/types": "1.0.12"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@coeiro-operator/mcp-debug": "^1.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-state-transition-v2.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/server-state-transition-v2.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Server 状態遷移とライフサイクル E2E Tests (リファクタリング版)
|
|
3
|
-
*
|
|
4
|
-
* テストヘルパーを使用して、各状態のテストを明確に分離
|
|
5
|
-
*/
|
|
6
|
-
import { describe, test, expect, afterEach } from 'vitest';
|
|
7
|
-
import { setupTestEnvironment } from './helpers/test-setup.js';
|
|
8
|
-
describe('MCP Server 状態遷移テスト (リファクタリング版)', () => {
|
|
9
|
-
let env = null;
|
|
10
|
-
afterEach(async () => {
|
|
11
|
-
if (env) {
|
|
12
|
-
await env.cleanup();
|
|
13
|
-
env = null;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
describe('NOT_CONFIGURED状態', () => {
|
|
17
|
-
test('未設定状態で利用可能なツールはinit, get_system_statusのみ', async () => {
|
|
18
|
-
env = await setupTestEnvironment({
|
|
19
|
-
prefix: 'not-configured',
|
|
20
|
-
createConfig: false,
|
|
21
|
-
});
|
|
22
|
-
const response = (await env.tester.sendRequest('tools/list', {}));
|
|
23
|
-
const toolNames = response.tools.map((t) => t.name);
|
|
24
|
-
// NOT_CONFIGURED状態では init と get_system_status のみ利用可能
|
|
25
|
-
expect(toolNames).toContain('init');
|
|
26
|
-
expect(toolNames).toContain('get_system_status');
|
|
27
|
-
// 他のツールは利用不可
|
|
28
|
-
expect(toolNames).not.toContain('search');
|
|
29
|
-
expect(toolNames).not.toContain('get_document');
|
|
30
|
-
expect(toolNames).not.toContain('index_status');
|
|
31
|
-
});
|
|
32
|
-
test('get_system_statusで未設定状態を確認', async () => {
|
|
33
|
-
env = await setupTestEnvironment({
|
|
34
|
-
prefix: 'not-configured',
|
|
35
|
-
createConfig: false,
|
|
36
|
-
});
|
|
37
|
-
const result = await env.tester.callTool('get_system_status', {});
|
|
38
|
-
expect(result.success).toBe(true);
|
|
39
|
-
const content = result.result?.content?.[0]?.text;
|
|
40
|
-
expect(content).toBeDefined();
|
|
41
|
-
expect(content).toContain('状態: 未設定');
|
|
42
|
-
});
|
|
43
|
-
test('initツールで設定ファイルを作成', async () => {
|
|
44
|
-
env = await setupTestEnvironment({
|
|
45
|
-
prefix: 'not-configured',
|
|
46
|
-
createConfig: false,
|
|
47
|
-
});
|
|
48
|
-
const result = await env.tester.callTool('init', {
|
|
49
|
-
port: 54321,
|
|
50
|
-
});
|
|
51
|
-
expect(result.success).toBe(true);
|
|
52
|
-
const content = result.result?.content?.[0]?.text;
|
|
53
|
-
expect(content).toContain('✅ 設定ファイルの初期化が完了しました');
|
|
54
|
-
expect(content).toContain('📝 設定ファイルの重要な項目');
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
describe('CONFIGURED_SERVER_DOWN状態', () => {
|
|
58
|
-
test('設定済み・サーバ停止状態で利用可能なツール', async () => {
|
|
59
|
-
env = await setupTestEnvironment({
|
|
60
|
-
prefix: 'configured-down',
|
|
61
|
-
createConfig: true,
|
|
62
|
-
port: 54322,
|
|
63
|
-
createIndexDir: false, // インデックスなし = auto-startしない
|
|
64
|
-
});
|
|
65
|
-
const response = (await env.tester.sendRequest('tools/list', {}));
|
|
66
|
-
const toolNames = response.tools.map((t) => t.name);
|
|
67
|
-
// CONFIGURED_SERVER_DOWN状態では server_start, server_stop も利用可能
|
|
68
|
-
expect(toolNames).toContain('init');
|
|
69
|
-
expect(toolNames).toContain('server_start');
|
|
70
|
-
expect(toolNames).toContain('server_stop');
|
|
71
|
-
expect(toolNames).toContain('get_system_status');
|
|
72
|
-
// 検索系ツールは利用不可
|
|
73
|
-
expect(toolNames).not.toContain('search');
|
|
74
|
-
expect(toolNames).not.toContain('get_document');
|
|
75
|
-
expect(toolNames).not.toContain('index_status');
|
|
76
|
-
});
|
|
77
|
-
test('get_system_statusで設定済み・サーバ停止状態を確認', async () => {
|
|
78
|
-
env = await setupTestEnvironment({
|
|
79
|
-
prefix: 'configured-down',
|
|
80
|
-
createConfig: true,
|
|
81
|
-
port: 54323,
|
|
82
|
-
createIndexDir: false,
|
|
83
|
-
});
|
|
84
|
-
const result = await env.tester.callTool('get_system_status', {});
|
|
85
|
-
expect(result.success).toBe(true);
|
|
86
|
-
const content = result.result?.content?.[0]?.text;
|
|
87
|
-
expect(content).toContain('状態: 設定済み・サーバ停止中');
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
describe('RUNNING状態(auto-start)', () => {
|
|
91
|
-
test('インデックス存在時にauto-startで全ツールが利用可能', async () => {
|
|
92
|
-
env = await setupTestEnvironment({
|
|
93
|
-
prefix: 'running-auto',
|
|
94
|
-
createConfig: true,
|
|
95
|
-
port: 54324,
|
|
96
|
-
createIndexDir: true, // インデックスあり = auto-start
|
|
97
|
-
});
|
|
98
|
-
const response = (await env.tester.sendRequest('tools/list', {}));
|
|
99
|
-
const toolNames = response.tools.map((t) => t.name);
|
|
100
|
-
// RUNNING状態では全ツールが利用可能
|
|
101
|
-
expect(toolNames).toContain('init');
|
|
102
|
-
expect(toolNames).toContain('server_start');
|
|
103
|
-
expect(toolNames).toContain('server_stop');
|
|
104
|
-
expect(toolNames).toContain('get_system_status');
|
|
105
|
-
expect(toolNames).toContain('search');
|
|
106
|
-
expect(toolNames).toContain('get_document');
|
|
107
|
-
expect(toolNames).toContain('index_status');
|
|
108
|
-
}, 40000); // 40秒のタイムアウト(auto-start health check 30s + buffer)
|
|
109
|
-
test('get_system_statusで稼働中状態を確認', async () => {
|
|
110
|
-
env = await setupTestEnvironment({
|
|
111
|
-
prefix: 'running-auto',
|
|
112
|
-
createConfig: true,
|
|
113
|
-
port: 54325,
|
|
114
|
-
createIndexDir: true,
|
|
115
|
-
});
|
|
116
|
-
const result = await env.tester.callTool('get_system_status', {});
|
|
117
|
-
expect(result.success).toBe(true);
|
|
118
|
-
const content = result.result?.content?.[0]?.text;
|
|
119
|
-
expect(content).toContain('状態: 稼働中');
|
|
120
|
-
expect(content).toContain('サーバURL:');
|
|
121
|
-
}, 40000); // 40秒のタイムアウト(auto-start health check 30s + buffer)
|
|
122
|
-
});
|
|
123
|
-
describe('サーバ起動・停止のライフサイクル', () => {
|
|
124
|
-
test('server_startでサーバを起動し、server_stopで停止できる', async () => {
|
|
125
|
-
env = await setupTestEnvironment({
|
|
126
|
-
prefix: 'lifecycle',
|
|
127
|
-
createConfig: true,
|
|
128
|
-
port: 54326,
|
|
129
|
-
createIndexDir: false,
|
|
130
|
-
});
|
|
131
|
-
// 1. サーバを起動
|
|
132
|
-
const startResult = await env.tester.callTool('server_start', {});
|
|
133
|
-
expect(startResult.success).toBe(true);
|
|
134
|
-
const startContent = startResult.result?.content?.[0]?.text;
|
|
135
|
-
expect(startContent).toContain('✅ サーバを起動しました');
|
|
136
|
-
// サーバ起動を待機
|
|
137
|
-
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
138
|
-
// 2. 起動後の状態確認
|
|
139
|
-
const statusAfterStart = await env.tester.callTool('get_system_status', {});
|
|
140
|
-
const statusContent = statusAfterStart.result?.content?.[0]?.text;
|
|
141
|
-
expect(statusContent).toContain('状態: 稼働中');
|
|
142
|
-
// 3. サーバを停止
|
|
143
|
-
const stopResult = await env.tester.callTool('server_stop', {});
|
|
144
|
-
expect(stopResult.success).toBe(true);
|
|
145
|
-
const stopContent = stopResult.result?.content?.[0]?.text;
|
|
146
|
-
expect(stopContent).toContain('✅ サーバを停止しました');
|
|
147
|
-
// サーバ停止を待機
|
|
148
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
149
|
-
// 4. 停止後の状態確認
|
|
150
|
-
const statusAfterStop = await env.tester.callTool('get_system_status', {});
|
|
151
|
-
const statusAfterStopContent = statusAfterStop.result?.content?.[0]
|
|
152
|
-
?.text;
|
|
153
|
-
expect(statusAfterStopContent).toContain('状態: 設定済み・サーバ停止中');
|
|
154
|
-
}, 30000); // 30秒のタイムアウト
|
|
155
|
-
test('停止後に再度server_startで起動できる', async () => {
|
|
156
|
-
env = await setupTestEnvironment({
|
|
157
|
-
prefix: 'lifecycle-restart',
|
|
158
|
-
createConfig: true,
|
|
159
|
-
port: 54327,
|
|
160
|
-
createIndexDir: false,
|
|
161
|
-
});
|
|
162
|
-
// 1. 初回起動
|
|
163
|
-
await env.tester.callTool('server_start', {});
|
|
164
|
-
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
165
|
-
// 2. 停止
|
|
166
|
-
await env.tester.callTool('server_stop', {});
|
|
167
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
168
|
-
// 3. 再起動
|
|
169
|
-
const restartResult = await env.tester.callTool('server_start', {});
|
|
170
|
-
expect(restartResult.success).toBe(true);
|
|
171
|
-
const restartContent = restartResult.result?.content?.[0]?.text;
|
|
172
|
-
expect(restartContent).toContain('✅ サーバを起動しました');
|
|
173
|
-
// 再起動を待機
|
|
174
|
-
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
175
|
-
// 4. 再起動後の状態確認
|
|
176
|
-
const statusAfterRestart = await env.tester.callTool('get_system_status', {});
|
|
177
|
-
const statusContent = statusAfterRestart.result?.content?.[0]?.text;
|
|
178
|
-
expect(statusContent).toContain('状態: 稼働中');
|
|
179
|
-
}, 40000); // 40秒のタイムアウト
|
|
180
|
-
});
|
|
181
|
-
});
|
|
182
|
-
//# sourceMappingURL=server-state-transition-v2.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-state-transition-v2.test.js","sourceRoot":"","sources":["../../src/__tests__/server-state-transition-v2.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Server 状態遷移とライフサイクル E2E Tests
|
|
3
|
-
*
|
|
4
|
-
* NOTE: このテストはサーバ起動・停止を含むため、実行に時間がかかります。
|
|
5
|
-
* また、mcp-debugの状態管理との兼ね合いで一部のテストが不安定な場合があります。
|
|
6
|
-
* 基本的な状態遷移(NOT_CONFIGURED, CONFIGURED_SERVER_DOWN)のテストは動作します。
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=server-state-transition.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-state-transition.test.d.ts","sourceRoot":"","sources":["../src/server-state-transition.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -1,267 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Server 状態遷移とライフサイクル E2E Tests
|
|
3
|
-
*
|
|
4
|
-
* NOTE: このテストはサーバ起動・停止を含むため、実行に時間がかかります。
|
|
5
|
-
* また、mcp-debugの状態管理との兼ね合いで一部のテストが不安定な場合があります。
|
|
6
|
-
* 基本的な状態遷移(NOT_CONFIGURED, CONFIGURED_SERVER_DOWN)のテストは動作します。
|
|
7
|
-
*/
|
|
8
|
-
import { describe, test, expect, beforeAll, afterAll } from 'vitest';
|
|
9
|
-
import { createMCPTester } from '@coeiro-operator/mcp-debug';
|
|
10
|
-
import * as path from 'path';
|
|
11
|
-
import * as fs from 'fs/promises';
|
|
12
|
-
import { fileURLToPath } from 'url';
|
|
13
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
14
|
-
const __dirname = path.dirname(__filename);
|
|
15
|
-
describe('MCP Server 状態遷移テスト', () => {
|
|
16
|
-
let testDir;
|
|
17
|
-
let tester;
|
|
18
|
-
beforeAll(async () => {
|
|
19
|
-
// テスト用の一時ディレクトリを作成
|
|
20
|
-
testDir = path.join('/tmp', `search-docs-test-${Date.now()}`);
|
|
21
|
-
await fs.mkdir(testDir, { recursive: true });
|
|
22
|
-
const serverPath = path.resolve(__dirname, '../dist/server.js');
|
|
23
|
-
// 未設定状態でMCPサーバーを起動
|
|
24
|
-
tester = await createMCPTester({
|
|
25
|
-
serverPath,
|
|
26
|
-
args: ['--project-dir', testDir],
|
|
27
|
-
});
|
|
28
|
-
await tester.waitUntilReady();
|
|
29
|
-
});
|
|
30
|
-
afterAll(async () => {
|
|
31
|
-
// サーバが起動している場合は停止(デーモンモードなので明示的に停止)
|
|
32
|
-
if (tester) {
|
|
33
|
-
try {
|
|
34
|
-
await tester.callTool('server_stop', {});
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
// サーバが既に停止している場合はエラーを無視
|
|
38
|
-
console.error('Note: server_stop failed (may already be stopped):', error);
|
|
39
|
-
}
|
|
40
|
-
await tester.cleanup();
|
|
41
|
-
}
|
|
42
|
-
// テストディレクトリを削除
|
|
43
|
-
try {
|
|
44
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error('Failed to cleanup test directory:', error);
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
describe('NOT_CONFIGURED状態', () => {
|
|
51
|
-
test('未設定状態で利用可能なツールを確認', async () => {
|
|
52
|
-
const response = (await tester.sendRequest('tools/list', {}));
|
|
53
|
-
const toolNames = response.tools.map((t) => t.name);
|
|
54
|
-
// NOT_CONFIGURED状態では init と get_system_status のみ利用可能
|
|
55
|
-
expect(toolNames).toContain('init');
|
|
56
|
-
expect(toolNames).toContain('get_system_status');
|
|
57
|
-
// 他のツールは利用不可
|
|
58
|
-
expect(toolNames).not.toContain('search');
|
|
59
|
-
expect(toolNames).not.toContain('get_document');
|
|
60
|
-
expect(toolNames).not.toContain('index_status');
|
|
61
|
-
});
|
|
62
|
-
test('get_system_statusで未設定状態を確認', async () => {
|
|
63
|
-
const result = await tester.callTool('get_system_status', {});
|
|
64
|
-
expect(result.success).toBe(true);
|
|
65
|
-
const content = result.result?.content?.[0]?.text;
|
|
66
|
-
// NOTE: NOT_CONFIGURED状態を期待するが、
|
|
67
|
-
// プロジェクトルートに既存の設定ファイルがある場合はCONFIGURED_SERVER_DOWN状態になる
|
|
68
|
-
// そのため、両方のケースを許容する
|
|
69
|
-
expect(content).toBeDefined();
|
|
70
|
-
expect(content.includes('状態: 未設定') || content.includes('状態: 設定済み・サーバ停止中')).toBe(true);
|
|
71
|
-
});
|
|
72
|
-
test('init実行で設定ファイルを作成', async () => {
|
|
73
|
-
const result = await tester.callTool('init', {
|
|
74
|
-
port: 54321, // テスト用の固定ポート
|
|
75
|
-
});
|
|
76
|
-
expect(result.success).toBe(true);
|
|
77
|
-
const content = result.result?.content?.[0]?.text;
|
|
78
|
-
expect(content).toContain('✅ 設定ファイルの初期化が完了しました');
|
|
79
|
-
expect(content).toContain('📝 設定ファイルの重要な項目');
|
|
80
|
-
expect(content).toContain('files.include');
|
|
81
|
-
expect(content).toContain('indexing.maxDepth');
|
|
82
|
-
// 設定ファイルが作成されたことを確認
|
|
83
|
-
const configPath = path.join(testDir, '.search-docs.json');
|
|
84
|
-
const configExists = await fs
|
|
85
|
-
.access(configPath)
|
|
86
|
-
.then(() => true)
|
|
87
|
-
.catch(() => false);
|
|
88
|
-
expect(configExists).toBe(true);
|
|
89
|
-
// 設定内容を確認
|
|
90
|
-
const configContent = await fs.readFile(configPath, 'utf-8');
|
|
91
|
-
const config = JSON.parse(configContent);
|
|
92
|
-
expect(config.server.port).toBe(54321);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
describe('CONFIGURED_SERVER_DOWN状態', () => {
|
|
96
|
-
test('設定後に利用可能なツールを確認', async () => {
|
|
97
|
-
// 状態が変わるため、MCPサーバーを再起動する必要がある
|
|
98
|
-
// しかし、mcp-debugでは状態の再読み込みができないため、
|
|
99
|
-
// 次のテストで新しいインスタンスを起動する方が良い
|
|
100
|
-
// ここでは設定ファイルが作成されたことを確認済みなので、
|
|
101
|
-
// 手動で確認することにします
|
|
102
|
-
// 設定ファイルの存在確認
|
|
103
|
-
const configPath = path.join(testDir, '.search-docs.json');
|
|
104
|
-
const configExists = await fs
|
|
105
|
-
.access(configPath)
|
|
106
|
-
.then(() => true)
|
|
107
|
-
.catch(() => false);
|
|
108
|
-
expect(configExists).toBe(true);
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
describe('MCP Server ライフサイクルテスト (設定済み環境)', () => {
|
|
113
|
-
let testDir;
|
|
114
|
-
let tester;
|
|
115
|
-
beforeAll(async () => {
|
|
116
|
-
// テスト用の一時ディレクトリを作成
|
|
117
|
-
testDir = path.join('/tmp', `search-docs-lifecycle-${Date.now()}`);
|
|
118
|
-
await fs.mkdir(testDir, { recursive: true });
|
|
119
|
-
// NOTE: test.mdファイルは作成しない
|
|
120
|
-
// インデックスが存在しないため、自動起動は行われず、
|
|
121
|
-
// CONFIGURED_SERVER_DOWN状態でのテストが可能になる
|
|
122
|
-
// 設定ファイルを事前に作成
|
|
123
|
-
const configPath = path.join(testDir, '.search-docs.json');
|
|
124
|
-
const config = {
|
|
125
|
-
version: '1.0',
|
|
126
|
-
project: {
|
|
127
|
-
name: 'test-project',
|
|
128
|
-
root: '.',
|
|
129
|
-
},
|
|
130
|
-
files: {
|
|
131
|
-
include: ['**/*.md'],
|
|
132
|
-
exclude: ['**/node_modules/**'],
|
|
133
|
-
ignoreGitignore: true,
|
|
134
|
-
},
|
|
135
|
-
indexing: {
|
|
136
|
-
maxTokensPerSection: 2000,
|
|
137
|
-
minTokensForSplit: 100,
|
|
138
|
-
maxDepth: 3,
|
|
139
|
-
vectorDimension: 256,
|
|
140
|
-
embeddingModel: 'cl-nagoya/ruri-v3-30m',
|
|
141
|
-
},
|
|
142
|
-
search: {
|
|
143
|
-
defaultLimit: 10,
|
|
144
|
-
maxLimit: 100,
|
|
145
|
-
includeCleanOnly: false,
|
|
146
|
-
},
|
|
147
|
-
server: {
|
|
148
|
-
host: 'localhost',
|
|
149
|
-
port: 54322,
|
|
150
|
-
protocol: 'json-rpc',
|
|
151
|
-
},
|
|
152
|
-
storage: {
|
|
153
|
-
documentsPath: '.search-docs/documents',
|
|
154
|
-
indexPath: '.search-docs/index',
|
|
155
|
-
cachePath: '.search-docs/cache',
|
|
156
|
-
},
|
|
157
|
-
worker: {
|
|
158
|
-
enabled: true,
|
|
159
|
-
interval: 5000,
|
|
160
|
-
maxConcurrent: 3,
|
|
161
|
-
},
|
|
162
|
-
watcher: {
|
|
163
|
-
enabled: true,
|
|
164
|
-
debounceMs: 1000,
|
|
165
|
-
awaitWriteFinishMs: 2000,
|
|
166
|
-
},
|
|
167
|
-
};
|
|
168
|
-
await fs.writeFile(configPath, JSON.stringify(config, null, 2), 'utf-8');
|
|
169
|
-
const serverPath = path.resolve(__dirname, '../dist/server.js');
|
|
170
|
-
// 設定済み状態でMCPサーバーを起動
|
|
171
|
-
tester = await createMCPTester({
|
|
172
|
-
serverPath,
|
|
173
|
-
args: ['--project-dir', testDir],
|
|
174
|
-
});
|
|
175
|
-
await tester.waitUntilReady();
|
|
176
|
-
});
|
|
177
|
-
afterAll(async () => {
|
|
178
|
-
// サーバが起動している場合は停止(デーモンモードなので明示的に停止)
|
|
179
|
-
if (tester) {
|
|
180
|
-
try {
|
|
181
|
-
await tester.callTool('server_stop', {});
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
// サーバが既に停止している場合はエラーを無視
|
|
185
|
-
console.error('Note: server_stop failed (may already be stopped):', error);
|
|
186
|
-
}
|
|
187
|
-
await tester.cleanup();
|
|
188
|
-
}
|
|
189
|
-
// テストディレクトリを削除
|
|
190
|
-
try {
|
|
191
|
-
await fs.rm(testDir, { recursive: true, force: true });
|
|
192
|
-
}
|
|
193
|
-
catch (error) {
|
|
194
|
-
console.error('Failed to cleanup test directory:', error);
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
describe('RUNNING状態(自動起動)', () => {
|
|
198
|
-
test('自動起動により全ツールが利用可能', async () => {
|
|
199
|
-
const response = (await tester.sendRequest('tools/list', {}));
|
|
200
|
-
const toolNames = response.tools.map((t) => t.name);
|
|
201
|
-
// インデックスが存在するため自動起動され、RUNNING状態で全ツールが利用可能
|
|
202
|
-
expect(toolNames).toContain('init');
|
|
203
|
-
expect(toolNames).toContain('server_start');
|
|
204
|
-
expect(toolNames).toContain('server_stop');
|
|
205
|
-
expect(toolNames).toContain('get_system_status');
|
|
206
|
-
expect(toolNames).toContain('search');
|
|
207
|
-
expect(toolNames).toContain('get_document');
|
|
208
|
-
expect(toolNames).toContain('index_status');
|
|
209
|
-
});
|
|
210
|
-
test('get_system_statusで稼働中状態を確認', async () => {
|
|
211
|
-
const result = await tester.callTool('get_system_status', {});
|
|
212
|
-
expect(result.success).toBe(true);
|
|
213
|
-
const content = result.result?.content?.[0]?.text;
|
|
214
|
-
// インデックスが存在するため自動起動され、RUNNING状態になる
|
|
215
|
-
expect(content).toContain('状態: 稼働中');
|
|
216
|
-
expect(content).toContain('設定ファイル:');
|
|
217
|
-
expect(content).toContain('プロジェクト:');
|
|
218
|
-
expect(content).toContain('サーバURL:');
|
|
219
|
-
});
|
|
220
|
-
test('server_startは既に起動中のメッセージを返す', async () => {
|
|
221
|
-
const result = await tester.callTool('server_start', {});
|
|
222
|
-
expect(result.success).toBe(true);
|
|
223
|
-
const content = result.result?.content?.[0]?.text;
|
|
224
|
-
// 既に起動しているため、起動中メッセージが返る
|
|
225
|
-
expect(content).toContain('サーバは既に起動しています');
|
|
226
|
-
}, 10000); // 10秒のタイムアウト
|
|
227
|
-
});
|
|
228
|
-
describe('サーバ起動・停止のライフサイクル', () => {
|
|
229
|
-
test('server_stopでサーバを停止', async () => {
|
|
230
|
-
// まずサーバが起動していることを確認
|
|
231
|
-
const statusResult = await tester.callTool('get_system_status', {});
|
|
232
|
-
expect(statusResult.success).toBe(true);
|
|
233
|
-
const statusContent = statusResult.result?.content?.[0]?.text;
|
|
234
|
-
expect(statusContent).toContain('状態: 稼働中');
|
|
235
|
-
// サーバを停止
|
|
236
|
-
const result = await tester.callTool('server_stop', {});
|
|
237
|
-
expect(result.success).toBe(true);
|
|
238
|
-
const content = result.result?.content?.[0]?.text;
|
|
239
|
-
expect(content).toContain('✅ サーバを停止しました');
|
|
240
|
-
// サーバ停止後、少し待機
|
|
241
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
242
|
-
// 停止後の状態を確認
|
|
243
|
-
const afterStopResult = await tester.callTool('get_system_status', {});
|
|
244
|
-
const afterStopContent = afterStopResult.result?.content?.[0]?.text;
|
|
245
|
-
expect(afterStopContent).toContain('状態: 設定済み・サーバ停止中');
|
|
246
|
-
});
|
|
247
|
-
test('停止後に再度server_startで起動', async () => {
|
|
248
|
-
const result = await tester.callTool('server_start', {});
|
|
249
|
-
expect(result.success).toBe(true);
|
|
250
|
-
const content = result.result?.content?.[0]?.text;
|
|
251
|
-
expect(content).toContain('✅ サーバを起動しました');
|
|
252
|
-
// サーバ起動後、少し待機
|
|
253
|
-
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
254
|
-
// 起動後の状態を確認
|
|
255
|
-
const afterStartResult = await tester.callTool('get_system_status', {});
|
|
256
|
-
const afterStartContent = afterStartResult.result?.content?.[0]?.text;
|
|
257
|
-
expect(afterStartContent).toContain('状態: 稼働中');
|
|
258
|
-
}, 15000); // 15秒のタイムアウト(起動+待機時間を考慮)
|
|
259
|
-
test('サーバ起動中にserver_startを実行すると既に起動中のメッセージ', async () => {
|
|
260
|
-
const result = await tester.callTool('server_start', {});
|
|
261
|
-
expect(result.success).toBe(true);
|
|
262
|
-
const content = result.result?.content?.[0]?.text;
|
|
263
|
-
expect(content).toContain('サーバは既に起動しています');
|
|
264
|
-
}, 10000); // 10秒のタイムアウト
|
|
265
|
-
});
|
|
266
|
-
});
|
|
267
|
-
//# sourceMappingURL=server-state-transition.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-state-transition.test.js","sourceRoot":"","sources":["../src/server-state-transition.test.ts"],"names":[],"mappings":"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"}
|