@satelliteoflove/godot-mcp 2.9.0 → 2.10.1
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/README.md +1 -0
- package/addon/command_router.gd +1 -0
- package/addon/commands/input_commands.gd +193 -0
- package/addon/commands/input_commands.gd.uid +1 -0
- package/addon/core/mcp_debugger_plugin.gd +82 -0
- package/addon/game_bridge/mcp_game_bridge.gd +191 -0
- package/addon/plugin.cfg +1 -1
- package/dist/__tests__/schema.test.js +12 -42
- package/dist/__tests__/schema.test.js.map +1 -1
- package/dist/__tests__/tools/animation.test.js +53 -153
- package/dist/__tests__/tools/animation.test.js.map +1 -1
- package/dist/__tests__/tools/docs.test.js +73 -75
- package/dist/__tests__/tools/docs.test.js.map +1 -1
- package/dist/__tests__/tools/editor.test.js +71 -285
- package/dist/__tests__/tools/editor.test.js.map +1 -1
- package/dist/__tests__/tools/input.test.d.ts +2 -0
- package/dist/__tests__/tools/input.test.d.ts.map +1 -0
- package/dist/__tests__/tools/input.test.js +137 -0
- package/dist/__tests__/tools/input.test.js.map +1 -0
- package/dist/__tests__/tools/node.test.js +104 -268
- package/dist/__tests__/tools/node.test.js.map +1 -1
- package/dist/__tests__/tools/resource.test.js +44 -94
- package/dist/__tests__/tools/resource.test.js.map +1 -1
- package/dist/__tests__/tools/scene.test.js +28 -75
- package/dist/__tests__/tools/scene.test.js.map +1 -1
- package/dist/__tests__/tools/tilemap.test.js +71 -229
- package/dist/__tests__/tools/tilemap.test.js.map +1 -1
- package/dist/__tests__/utils/logger.test.js +36 -201
- package/dist/__tests__/utils/logger.test.js.map +1 -1
- package/dist/tools/editor.js +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/input.d.ts +63 -0
- package/dist/tools/input.d.ts.map +1 -0
- package/dist/tools/input.js +85 -0
- package/dist/tools/input.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,82 +1,52 @@
|
|
|
1
1
|
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
2
|
import { createMockGodot, createToolContext } from '../helpers/mock-godot.js';
|
|
3
|
-
import { animation
|
|
3
|
+
import { animation } from '../../tools/animation.js';
|
|
4
4
|
describe('animation tool', () => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
});
|
|
9
|
-
it('has animation tool with all action types', () => {
|
|
10
|
-
expect(animation.name).toBe('animation');
|
|
11
|
-
expect(animation.description).toContain('Query');
|
|
12
|
-
expect(animation.description).toContain('Playback');
|
|
13
|
-
expect(animation.description).toContain('Edit');
|
|
14
|
-
});
|
|
5
|
+
let mock;
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
mock = createMockGodot();
|
|
15
8
|
});
|
|
16
9
|
describe('query actions', () => {
|
|
17
|
-
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
mock = createMockGodot();
|
|
20
|
-
});
|
|
21
|
-
it('list_players sends command and formats empty result', async () => {
|
|
22
|
-
mock.mockResponse({ animation_players: [] });
|
|
10
|
+
it('list_players returns formatted list or empty message', async () => {
|
|
23
11
|
const ctx = createToolContext(mock);
|
|
24
|
-
|
|
25
|
-
expect(
|
|
26
|
-
|
|
27
|
-
});
|
|
28
|
-
it('list_players formats found players', async () => {
|
|
12
|
+
mock.mockResponse({ animation_players: [] });
|
|
13
|
+
expect(await animation.execute({ action: 'list_players' }, ctx))
|
|
14
|
+
.toBe('No AnimationPlayer nodes found in scene');
|
|
29
15
|
mock.mockResponse({
|
|
30
16
|
animation_players: [
|
|
31
17
|
{ path: '/root/Player/AnimPlayer', name: 'AnimPlayer' },
|
|
32
18
|
{ path: '/root/Enemy/AnimPlayer', name: 'AnimPlayer' },
|
|
33
19
|
],
|
|
34
20
|
});
|
|
35
|
-
const ctx = createToolContext(mock);
|
|
36
21
|
const result = await animation.execute({ action: 'list_players' }, ctx);
|
|
37
22
|
expect(result).toContain('Found 2 AnimationPlayer(s)');
|
|
38
23
|
expect(result).toContain('/root/Player/AnimPlayer');
|
|
39
24
|
});
|
|
40
|
-
it('get_info
|
|
41
|
-
const info = { current_animation: 'idle', is_playing: true, current_position: 0.5 };
|
|
42
|
-
mock.mockResponse(info);
|
|
25
|
+
it('get_info/get_details/get_keyframes return JSON', async () => {
|
|
43
26
|
const ctx = createToolContext(mock);
|
|
44
|
-
const
|
|
27
|
+
const info = { current_animation: 'idle', is_playing: true };
|
|
28
|
+
mock.mockResponse(info);
|
|
29
|
+
expect(JSON.parse(await animation.execute({
|
|
45
30
|
action: 'get_info',
|
|
46
31
|
node_path: '/root/AnimPlayer',
|
|
47
|
-
}, ctx);
|
|
48
|
-
expect(mock.calls[0].command).toBe('get_animation_player_info');
|
|
49
|
-
expect(mock.calls[0].params.node_path).toBe('/root/AnimPlayer');
|
|
50
|
-
expect(result).toBe(JSON.stringify(info, null, 2));
|
|
51
|
-
});
|
|
52
|
-
it('get_details sends command with animation name', async () => {
|
|
32
|
+
}, ctx))).toEqual(info);
|
|
53
33
|
const details = { name: 'walk', length: 1.5, track_count: 3 };
|
|
54
34
|
mock.mockResponse(details);
|
|
55
|
-
|
|
56
|
-
const result = await animation.execute({
|
|
35
|
+
expect(JSON.parse(await animation.execute({
|
|
57
36
|
action: 'get_details',
|
|
58
37
|
node_path: '/root/AnimPlayer',
|
|
59
38
|
animation_name: 'walk',
|
|
60
|
-
}, ctx);
|
|
61
|
-
expect(mock.calls[0].command).toBe('get_animation_details');
|
|
62
|
-
expect(mock.calls[0].params.animation_name).toBe('walk');
|
|
63
|
-
expect(result).toBe(JSON.stringify(details, null, 2));
|
|
64
|
-
});
|
|
65
|
-
it('get_keyframes sends command with track index', async () => {
|
|
39
|
+
}, ctx))).toEqual(details);
|
|
66
40
|
const keyframes = { track_path: 'Sprite:frame', keyframes: [{ time: 0, value: 0 }] };
|
|
67
41
|
mock.mockResponse(keyframes);
|
|
68
|
-
|
|
69
|
-
const result = await animation.execute({
|
|
42
|
+
expect(JSON.parse(await animation.execute({
|
|
70
43
|
action: 'get_keyframes',
|
|
71
44
|
node_path: '/root/AnimPlayer',
|
|
72
45
|
animation_name: 'walk',
|
|
73
46
|
track_index: 0,
|
|
74
|
-
}, ctx);
|
|
75
|
-
expect(mock.calls[0].command).toBe('get_track_keyframes');
|
|
76
|
-
expect(mock.calls[0].params.track_index).toBe(0);
|
|
77
|
-
expect(result).toBe(JSON.stringify(keyframes, null, 2));
|
|
47
|
+
}, ctx))).toEqual(keyframes);
|
|
78
48
|
});
|
|
79
|
-
it('
|
|
49
|
+
it('propagates errors from Godot', async () => {
|
|
80
50
|
mock.mockError(new Error('Node not found'));
|
|
81
51
|
const ctx = createToolContext(mock);
|
|
82
52
|
await expect(animation.execute({
|
|
@@ -86,23 +56,27 @@ describe('animation tool', () => {
|
|
|
86
56
|
});
|
|
87
57
|
});
|
|
88
58
|
describe('playback actions', () => {
|
|
89
|
-
|
|
90
|
-
beforeEach(() => {
|
|
91
|
-
mock = createMockGodot();
|
|
92
|
-
});
|
|
93
|
-
it('play sends command and returns confirmation', async () => {
|
|
94
|
-
mock.mockResponse({ playing: 'run', from_position: 0 });
|
|
59
|
+
it('play/stop/seek return confirmations', async () => {
|
|
95
60
|
const ctx = createToolContext(mock);
|
|
96
|
-
|
|
61
|
+
mock.mockResponse({ playing: 'run', from_position: 0 });
|
|
62
|
+
expect(await animation.execute({
|
|
97
63
|
action: 'play',
|
|
98
64
|
node_path: '/root/AnimPlayer',
|
|
99
65
|
animation_name: 'run',
|
|
100
|
-
}, ctx);
|
|
101
|
-
|
|
102
|
-
expect(
|
|
103
|
-
|
|
66
|
+
}, ctx)).toBe('Playing animation: run');
|
|
67
|
+
mock.mockResponse({});
|
|
68
|
+
expect(await animation.execute({
|
|
69
|
+
action: 'stop',
|
|
70
|
+
node_path: '/root/AnimPlayer',
|
|
71
|
+
}, ctx)).toBe('Animation stopped');
|
|
72
|
+
mock.mockResponse({ position: 1.5 });
|
|
73
|
+
expect(await animation.execute({
|
|
74
|
+
action: 'seek',
|
|
75
|
+
node_path: '/root/AnimPlayer',
|
|
76
|
+
seconds: 1.5,
|
|
77
|
+
}, ctx)).toBe('Seeked to position: 1.5');
|
|
104
78
|
});
|
|
105
|
-
it('play passes optional params', async () => {
|
|
79
|
+
it('play passes optional speed/blend/from_end params', async () => {
|
|
106
80
|
mock.mockResponse({ playing: 'walk', from_position: 0 });
|
|
107
81
|
const ctx = createToolContext(mock);
|
|
108
82
|
await animation.execute({
|
|
@@ -117,141 +91,69 @@ describe('animation tool', () => {
|
|
|
117
91
|
expect(mock.calls[0].params.custom_blend).toBe(0.5);
|
|
118
92
|
expect(mock.calls[0].params.from_end).toBe(true);
|
|
119
93
|
});
|
|
120
|
-
it('stop sends command and returns confirmation', async () => {
|
|
121
|
-
mock.mockResponse({});
|
|
122
|
-
const ctx = createToolContext(mock);
|
|
123
|
-
const result = await animation.execute({
|
|
124
|
-
action: 'stop',
|
|
125
|
-
node_path: '/root/AnimPlayer',
|
|
126
|
-
}, ctx);
|
|
127
|
-
expect(mock.calls[0].command).toBe('stop_animation');
|
|
128
|
-
expect(result).toBe('Animation stopped');
|
|
129
|
-
});
|
|
130
|
-
it('seek sends command and returns position', async () => {
|
|
131
|
-
mock.mockResponse({ position: 1.5 });
|
|
132
|
-
const ctx = createToolContext(mock);
|
|
133
|
-
const result = await animation.execute({
|
|
134
|
-
action: 'seek',
|
|
135
|
-
node_path: '/root/AnimPlayer',
|
|
136
|
-
seconds: 1.5,
|
|
137
|
-
}, ctx);
|
|
138
|
-
expect(mock.calls[0].command).toBe('seek_animation');
|
|
139
|
-
expect(mock.calls[0].params.seconds).toBe(1.5);
|
|
140
|
-
expect(result).toBe('Seeked to position: 1.5');
|
|
141
|
-
});
|
|
142
94
|
});
|
|
143
95
|
describe('edit actions', () => {
|
|
144
|
-
|
|
145
|
-
beforeEach(() => {
|
|
146
|
-
mock = createMockGodot();
|
|
147
|
-
});
|
|
148
|
-
it('create sends command and returns confirmation', async () => {
|
|
149
|
-
mock.mockResponse({ created: 'new_anim', library: '' });
|
|
96
|
+
it('create/delete return confirmations', async () => {
|
|
150
97
|
const ctx = createToolContext(mock);
|
|
151
|
-
|
|
98
|
+
mock.mockResponse({ created: 'new_anim', library: '' });
|
|
99
|
+
expect(await animation.execute({
|
|
152
100
|
action: 'create',
|
|
153
101
|
node_path: '/root/AnimPlayer',
|
|
154
102
|
animation_name: 'new_anim',
|
|
155
103
|
length: 2.0,
|
|
156
|
-
}, ctx);
|
|
157
|
-
expect(mock.calls[0].command).toBe('create_animation');
|
|
158
|
-
expect(mock.calls[0].params.animation_name).toBe('new_anim');
|
|
159
|
-
expect(mock.calls[0].params.length).toBe(2.0);
|
|
160
|
-
expect(result).toBe('Created animation: new_anim');
|
|
161
|
-
});
|
|
162
|
-
it('create includes library in result when provided', async () => {
|
|
104
|
+
}, ctx)).toBe('Created animation: new_anim');
|
|
163
105
|
mock.mockResponse({ created: 'walk', library: 'movement' });
|
|
164
|
-
|
|
165
|
-
const result = await animation.execute({
|
|
106
|
+
expect(await animation.execute({
|
|
166
107
|
action: 'create',
|
|
167
108
|
node_path: '/root/AnimPlayer',
|
|
168
109
|
animation_name: 'walk',
|
|
169
110
|
library_name: 'movement',
|
|
170
|
-
}, ctx);
|
|
171
|
-
expect(result).toBe('Created animation: walk in library: movement');
|
|
172
|
-
});
|
|
173
|
-
it('delete sends command and returns confirmation', async () => {
|
|
111
|
+
}, ctx)).toBe('Created animation: walk in library: movement');
|
|
174
112
|
mock.mockResponse({ deleted: 'old_anim' });
|
|
175
|
-
|
|
176
|
-
const result = await animation.execute({
|
|
113
|
+
expect(await animation.execute({
|
|
177
114
|
action: 'delete',
|
|
178
115
|
node_path: '/root/AnimPlayer',
|
|
179
116
|
animation_name: 'old_anim',
|
|
180
|
-
}, ctx);
|
|
181
|
-
expect(mock.calls[0].command).toBe('delete_animation');
|
|
182
|
-
expect(result).toBe('Deleted animation: old_anim');
|
|
117
|
+
}, ctx)).toBe('Deleted animation: old_anim');
|
|
183
118
|
});
|
|
184
|
-
it('
|
|
185
|
-
mock.mockResponse({ updated: 'walk', properties: { length: 2.0, loop_mode: 'linear' } });
|
|
119
|
+
it('track operations return formatted confirmations', async () => {
|
|
186
120
|
const ctx = createToolContext(mock);
|
|
187
|
-
const result = await animation.execute({
|
|
188
|
-
action: 'update_props',
|
|
189
|
-
node_path: '/root/AnimPlayer',
|
|
190
|
-
animation_name: 'walk',
|
|
191
|
-
length: 2.0,
|
|
192
|
-
loop_mode: 'linear',
|
|
193
|
-
}, ctx);
|
|
194
|
-
expect(mock.calls[0].command).toBe('update_animation_properties');
|
|
195
|
-
expect(result).toContain('Updated animation: walk');
|
|
196
|
-
expect(result).toContain('"length":2');
|
|
197
|
-
});
|
|
198
|
-
it('add_track sends command and returns track info', async () => {
|
|
199
121
|
mock.mockResponse({ track_index: 0, track_path: 'Sprite2D:frame', track_type: 'value' });
|
|
200
|
-
|
|
201
|
-
const result = await animation.execute({
|
|
122
|
+
expect(await animation.execute({
|
|
202
123
|
action: 'add_track',
|
|
203
124
|
node_path: '/root/AnimPlayer',
|
|
204
125
|
animation_name: 'walk',
|
|
205
126
|
track_type: 'value',
|
|
206
127
|
track_path: 'Sprite2D:frame',
|
|
207
|
-
}, ctx);
|
|
208
|
-
expect(mock.calls[0].command).toBe('add_animation_track');
|
|
209
|
-
expect(result).toBe('Added track 0: value -> Sprite2D:frame');
|
|
210
|
-
});
|
|
211
|
-
it('remove_track sends command and returns confirmation', async () => {
|
|
128
|
+
}, ctx)).toBe('Added track 0: value -> Sprite2D:frame');
|
|
212
129
|
mock.mockResponse({ removed_track: 2 });
|
|
213
|
-
|
|
214
|
-
const result = await animation.execute({
|
|
130
|
+
expect(await animation.execute({
|
|
215
131
|
action: 'remove_track',
|
|
216
132
|
node_path: '/root/AnimPlayer',
|
|
217
133
|
animation_name: 'walk',
|
|
218
134
|
track_index: 2,
|
|
219
|
-
}, ctx);
|
|
220
|
-
expect(mock.calls[0].command).toBe('remove_animation_track');
|
|
221
|
-
expect(result).toBe('Removed track: 2');
|
|
135
|
+
}, ctx)).toBe('Removed track: 2');
|
|
222
136
|
});
|
|
223
|
-
it('
|
|
224
|
-
mock.mockResponse({ keyframe_index: 0, time: 0.5, value: 3 });
|
|
137
|
+
it('keyframe operations return formatted confirmations', async () => {
|
|
225
138
|
const ctx = createToolContext(mock);
|
|
226
|
-
|
|
139
|
+
mock.mockResponse({ keyframe_index: 0, time: 0.5, value: 3 });
|
|
140
|
+
expect(await animation.execute({
|
|
227
141
|
action: 'add_keyframe',
|
|
228
142
|
node_path: '/root/AnimPlayer',
|
|
229
143
|
animation_name: 'walk',
|
|
230
144
|
track_index: 0,
|
|
231
145
|
time: 0.5,
|
|
232
146
|
value: 3,
|
|
233
|
-
}, ctx);
|
|
234
|
-
expect(mock.calls[0].command).toBe('add_keyframe');
|
|
235
|
-
expect(mock.calls[0].params.time).toBe(0.5);
|
|
236
|
-
expect(mock.calls[0].params.value).toBe(3);
|
|
237
|
-
expect(result).toBe('Added keyframe 0 at 0.5s');
|
|
238
|
-
});
|
|
239
|
-
it('remove_keyframe sends command and returns confirmation', async () => {
|
|
147
|
+
}, ctx)).toBe('Added keyframe 0 at 0.5s');
|
|
240
148
|
mock.mockResponse({ removed_keyframe: 1, track_index: 0 });
|
|
241
|
-
|
|
242
|
-
const result = await animation.execute({
|
|
149
|
+
expect(await animation.execute({
|
|
243
150
|
action: 'remove_keyframe',
|
|
244
151
|
node_path: '/root/AnimPlayer',
|
|
245
152
|
animation_name: 'walk',
|
|
246
153
|
track_index: 0,
|
|
247
154
|
keyframe_index: 1,
|
|
248
|
-
}, ctx);
|
|
249
|
-
expect(mock.calls[0].command).toBe('remove_keyframe');
|
|
250
|
-
expect(result).toBe('Removed keyframe 1 from track 0');
|
|
251
|
-
});
|
|
252
|
-
it('update_keyframe sends command and returns changes', async () => {
|
|
155
|
+
}, ctx)).toBe('Removed keyframe 1 from track 0');
|
|
253
156
|
mock.mockResponse({ updated_keyframe: 0, changes: { time: 0.75, value: 5 } });
|
|
254
|
-
const ctx = createToolContext(mock);
|
|
255
157
|
const result = await animation.execute({
|
|
256
158
|
action: 'update_keyframe',
|
|
257
159
|
node_path: '/root/AnimPlayer',
|
|
@@ -261,9 +163,7 @@ describe('animation tool', () => {
|
|
|
261
163
|
time: 0.75,
|
|
262
164
|
value: 5,
|
|
263
165
|
}, ctx);
|
|
264
|
-
expect(mock.calls[0].command).toBe('update_keyframe');
|
|
265
166
|
expect(result).toContain('Updated keyframe 0');
|
|
266
|
-
expect(result).toContain('"time":0.75');
|
|
267
167
|
});
|
|
268
168
|
});
|
|
269
169
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animation.test.js","sourceRoot":"","sources":["../../../src/__tests__/tools/animation.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"animation.test.js","sourceRoot":"","sources":["../../../src/__tests__/tools/animation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,132 +1,130 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
2
|
import { createMockGodot, createToolContext } from '../helpers/mock-godot.js';
|
|
3
|
-
import { docs
|
|
3
|
+
import { docs } from '../../tools/docs.js';
|
|
4
4
|
describe('godot_docs tool', () => {
|
|
5
|
-
describe('tool definitions', () => {
|
|
6
|
-
it('exports one tool', () => {
|
|
7
|
-
expect(docsTools).toHaveLength(1);
|
|
8
|
-
});
|
|
9
|
-
it('has correct name and description', () => {
|
|
10
|
-
expect(docs.name).toBe('godot_docs');
|
|
11
|
-
expect(docs.description).toContain('Godot Engine documentation');
|
|
12
|
-
});
|
|
13
|
-
});
|
|
14
5
|
describe('schema validation', () => {
|
|
15
|
-
it('
|
|
16
|
-
expect(docs.schema.safeParse({}).success).toBe(false);
|
|
17
|
-
});
|
|
18
|
-
it('requires class_name for fetch_class', () => {
|
|
19
|
-
const result = docs.schema.safeParse({ action: 'fetch_class' });
|
|
20
|
-
expect(result.success).toBe(true);
|
|
21
|
-
});
|
|
22
|
-
it('requires path for fetch_page', () => {
|
|
23
|
-
const result = docs.schema.safeParse({ action: 'fetch_page' });
|
|
24
|
-
expect(result.success).toBe(true);
|
|
25
|
-
});
|
|
26
|
-
it('accepts valid version values', () => {
|
|
6
|
+
it('accepts valid version and section values', () => {
|
|
27
7
|
const versions = ['stable', 'latest', '4.5', '4.4', '4.3', '4.2'];
|
|
8
|
+
const sections = ['full', 'description', 'properties', 'methods', 'signals'];
|
|
28
9
|
for (const version of versions) {
|
|
29
|
-
|
|
10
|
+
expect(docs.schema.safeParse({
|
|
30
11
|
action: 'fetch_class',
|
|
31
12
|
class_name: 'Node2D',
|
|
32
13
|
version,
|
|
33
|
-
});
|
|
34
|
-
expect(result.success).toBe(true);
|
|
14
|
+
}).success).toBe(true);
|
|
35
15
|
}
|
|
36
|
-
});
|
|
37
|
-
it('rejects invalid version', () => {
|
|
38
|
-
const result = docs.schema.safeParse({
|
|
39
|
-
action: 'fetch_class',
|
|
40
|
-
class_name: 'Node2D',
|
|
41
|
-
version: '3.5',
|
|
42
|
-
});
|
|
43
|
-
expect(result.success).toBe(false);
|
|
44
|
-
});
|
|
45
|
-
it('accepts valid section values', () => {
|
|
46
|
-
const sections = ['full', 'description', 'properties', 'methods', 'signals'];
|
|
47
16
|
for (const section of sections) {
|
|
48
|
-
|
|
17
|
+
expect(docs.schema.safeParse({
|
|
49
18
|
action: 'fetch_class',
|
|
50
19
|
class_name: 'Node2D',
|
|
51
20
|
section,
|
|
52
|
-
});
|
|
53
|
-
expect(result.success).toBe(true);
|
|
21
|
+
}).success).toBe(true);
|
|
54
22
|
}
|
|
55
23
|
});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
expect(result).toContain('CharacterBody2D');
|
|
63
|
-
expect(result).toContain('Source: https://docs.godotengine.org');
|
|
64
|
-
expect(result).toContain('Approx tokens:');
|
|
24
|
+
it('rejects invalid version', () => {
|
|
25
|
+
expect(docs.schema.safeParse({
|
|
26
|
+
action: 'fetch_class',
|
|
27
|
+
class_name: 'Node2D',
|
|
28
|
+
version: '3.5',
|
|
29
|
+
}).success).toBe(false);
|
|
65
30
|
});
|
|
66
|
-
|
|
31
|
+
});
|
|
32
|
+
describe('fetch_class (live integration)', () => {
|
|
33
|
+
it('fetches class reference with section filtering', async () => {
|
|
67
34
|
const mock = createMockGodot();
|
|
68
35
|
const ctx = createToolContext(mock);
|
|
69
|
-
const fullResult =
|
|
70
|
-
|
|
36
|
+
const fullResult = await docs.execute({
|
|
37
|
+
action: 'fetch_class',
|
|
38
|
+
class_name: 'Node2D',
|
|
39
|
+
version: 'stable',
|
|
40
|
+
section: 'full',
|
|
41
|
+
}, ctx);
|
|
42
|
+
const descResult = await docs.execute({
|
|
43
|
+
action: 'fetch_class',
|
|
44
|
+
class_name: 'Node2D',
|
|
45
|
+
version: 'stable',
|
|
46
|
+
section: 'description',
|
|
47
|
+
}, ctx);
|
|
48
|
+
expect(fullResult).toContain('Node2D');
|
|
49
|
+
expect(fullResult).toContain('Source: https://docs.godotengine.org');
|
|
71
50
|
expect(descResult.length).toBeLessThan(fullResult.length);
|
|
72
|
-
expect(descResult).toContain('Node2D');
|
|
73
|
-
expect(descResult).toContain('Description');
|
|
74
51
|
});
|
|
75
52
|
it('handles class name case insensitively', async () => {
|
|
76
53
|
const mock = createMockGodot();
|
|
77
54
|
const ctx = createToolContext(mock);
|
|
78
|
-
const result = await docs.execute({
|
|
55
|
+
const result = await docs.execute({
|
|
56
|
+
action: 'fetch_class',
|
|
57
|
+
class_name: 'SPRITE2D',
|
|
58
|
+
version: 'stable',
|
|
59
|
+
section: 'description',
|
|
60
|
+
}, ctx);
|
|
79
61
|
expect(result).toContain('Sprite2D');
|
|
80
62
|
});
|
|
81
63
|
it('throws error for non-existent class', async () => {
|
|
82
64
|
const mock = createMockGodot();
|
|
83
65
|
const ctx = createToolContext(mock);
|
|
84
|
-
await expect(docs.execute({
|
|
66
|
+
await expect(docs.execute({
|
|
67
|
+
action: 'fetch_class',
|
|
68
|
+
class_name: 'NotARealClass12345',
|
|
69
|
+
version: 'stable',
|
|
70
|
+
section: 'full',
|
|
71
|
+
}, ctx)).rejects.toThrow('not found');
|
|
85
72
|
});
|
|
86
73
|
it('fetches from specific version', async () => {
|
|
87
74
|
const mock = createMockGodot();
|
|
88
75
|
const ctx = createToolContext(mock);
|
|
89
|
-
const result = await docs.execute({
|
|
90
|
-
|
|
91
|
-
|
|
76
|
+
const result = await docs.execute({
|
|
77
|
+
action: 'fetch_class',
|
|
78
|
+
class_name: 'TileMapLayer',
|
|
79
|
+
version: '4.5',
|
|
80
|
+
section: 'description',
|
|
81
|
+
}, ctx);
|
|
82
|
+
expect(result).toContain('/en/4.5/');
|
|
92
83
|
});
|
|
93
84
|
});
|
|
94
|
-
describe('fetch_page
|
|
85
|
+
describe('fetch_page (live integration)', () => {
|
|
95
86
|
it('fetches tutorial page', async () => {
|
|
96
87
|
const mock = createMockGodot();
|
|
97
88
|
const ctx = createToolContext(mock);
|
|
98
|
-
const result =
|
|
89
|
+
const result = await docs.execute({
|
|
99
90
|
action: 'fetch_page',
|
|
100
91
|
path: '/tutorials/2d/2d_movement.html',
|
|
101
92
|
version: 'stable',
|
|
102
93
|
section: 'full',
|
|
103
|
-
}, ctx)
|
|
94
|
+
}, ctx);
|
|
104
95
|
expect(result).toContain('Source: https://docs.godotengine.org');
|
|
105
96
|
expect(result.length).toBeGreaterThan(1000);
|
|
106
97
|
});
|
|
107
98
|
});
|
|
108
99
|
describe('version auto-detection', () => {
|
|
109
|
-
it('uses detected version from Godot
|
|
100
|
+
it('uses detected version from Godot, falls back to stable', async () => {
|
|
110
101
|
const mock = createMockGodot();
|
|
111
|
-
mock.godotVersion = '4.5.1';
|
|
112
102
|
const ctx = createToolContext(mock);
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
103
|
+
mock.godotVersion = '4.5.1';
|
|
104
|
+
const withVersion = await docs.execute({
|
|
105
|
+
action: 'fetch_class',
|
|
106
|
+
class_name: 'Node2D',
|
|
107
|
+
section: 'description',
|
|
108
|
+
}, ctx);
|
|
109
|
+
expect(withVersion).toContain('(auto-detected: 4.5)');
|
|
119
110
|
mock.godotVersion = null;
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
111
|
+
const noVersion = await docs.execute({
|
|
112
|
+
action: 'fetch_class',
|
|
113
|
+
class_name: 'Node2D',
|
|
114
|
+
section: 'description',
|
|
115
|
+
}, ctx);
|
|
116
|
+
expect(noVersion).toContain('(auto-detected: stable)');
|
|
124
117
|
});
|
|
125
|
-
it('
|
|
118
|
+
it('explicit version overrides auto-detected', async () => {
|
|
126
119
|
const mock = createMockGodot();
|
|
127
120
|
mock.godotVersion = '4.5.1';
|
|
128
121
|
const ctx = createToolContext(mock);
|
|
129
|
-
const result = await docs.execute({
|
|
122
|
+
const result = await docs.execute({
|
|
123
|
+
action: 'fetch_class',
|
|
124
|
+
class_name: 'Node2D',
|
|
125
|
+
version: '4.4',
|
|
126
|
+
section: 'description',
|
|
127
|
+
}, ctx);
|
|
130
128
|
expect(result).not.toContain('auto-detected');
|
|
131
129
|
expect(result).toContain('/en/4.4/');
|
|
132
130
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.test.js","sourceRoot":"","sources":["../../../src/__tests__/tools/docs.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"docs.test.js","sourceRoot":"","sources":["../../../src/__tests__/tools/docs.test.ts"],"names":[],"mappings":"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"}
|