appium-mcp 1.84.0 → 1.84.2

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.
Files changed (100) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/command.d.ts +9 -0
  3. package/dist/command.d.ts.map +1 -1
  4. package/dist/command.js +29 -0
  5. package/dist/command.js.map +1 -1
  6. package/dist/tools/interactions/find.d.ts.map +1 -1
  7. package/dist/tools/interactions/find.js +2 -1
  8. package/dist/tools/interactions/find.js.map +1 -1
  9. package/package.json +2 -1
  10. package/server.json +2 -2
  11. package/src/command.ts +37 -0
  12. package/src/tools/interactions/find.ts +6 -1
  13. package/dist/tests/__mocks__/@appium/support.d.ts +0 -92
  14. package/dist/tests/__mocks__/@appium/support.d.ts.map +0 -1
  15. package/dist/tests/__mocks__/@appium/support.js +0 -66
  16. package/dist/tests/__mocks__/@appium/support.js.map +0 -1
  17. package/dist/tests/benchmark_model/benchmark_model.d.ts +0 -3
  18. package/dist/tests/benchmark_model/benchmark_model.d.ts.map +0 -1
  19. package/dist/tests/benchmark_model/benchmark_model.js +0 -617
  20. package/dist/tests/benchmark_model/benchmark_model.js.map +0 -1
  21. package/dist/tests/create-server.test.d.ts +0 -2
  22. package/dist/tests/create-server.test.d.ts.map +0 -1
  23. package/dist/tests/create-server.test.js +0 -586
  24. package/dist/tests/create-server.test.js.map +0 -1
  25. package/dist/tests/generate-all-locators.test.d.ts +0 -2
  26. package/dist/tests/generate-all-locators.test.d.ts.map +0 -1
  27. package/dist/tests/generate-all-locators.test.js +0 -136
  28. package/dist/tests/generate-all-locators.test.js.map +0 -1
  29. package/dist/tests/persistence.test.d.ts +0 -2
  30. package/dist/tests/persistence.test.d.ts.map +0 -1
  31. package/dist/tests/persistence.test.js +0 -116
  32. package/dist/tests/persistence.test.js.map +0 -1
  33. package/dist/tests/plugin.test.d.ts +0 -2
  34. package/dist/tests/plugin.test.d.ts.map +0 -1
  35. package/dist/tests/plugin.test.js +0 -399
  36. package/dist/tests/plugin.test.js.map +0 -1
  37. package/dist/tests/policy.test.d.ts +0 -2
  38. package/dist/tests/policy.test.d.ts.map +0 -1
  39. package/dist/tests/policy.test.js +0 -44
  40. package/dist/tests/policy.test.js.map +0 -1
  41. package/dist/tests/screenshot.test.d.ts +0 -2
  42. package/dist/tests/screenshot.test.d.ts.map +0 -1
  43. package/dist/tests/screenshot.test.js +0 -243
  44. package/dist/tests/screenshot.test.js.map +0 -1
  45. package/dist/tests/session-store.test.d.ts +0 -2
  46. package/dist/tests/session-store.test.d.ts.map +0 -1
  47. package/dist/tests/session-store.test.js +0 -459
  48. package/dist/tests/session-store.test.js.map +0 -1
  49. package/dist/tests/test-setup-wda.d.ts +0 -2
  50. package/dist/tests/test-setup-wda.d.ts.map +0 -1
  51. package/dist/tests/test-setup-wda.js +0 -199
  52. package/dist/tests/test-setup-wda.js.map +0 -1
  53. package/dist/tests/tools/evidence.test.d.ts +0 -2
  54. package/dist/tests/tools/evidence.test.d.ts.map +0 -1
  55. package/dist/tests/tools/evidence.test.js +0 -158
  56. package/dist/tests/tools/evidence.test.js.map +0 -1
  57. package/dist/tests/tools/gestures/ai-element.test.d.ts +0 -2
  58. package/dist/tests/tools/gestures/ai-element.test.d.ts.map +0 -1
  59. package/dist/tests/tools/gestures/ai-element.test.js +0 -114
  60. package/dist/tests/tools/gestures/ai-element.test.js.map +0 -1
  61. package/dist/tests/tools/gestures/swipe-scroll.test.d.ts +0 -2
  62. package/dist/tests/tools/gestures/swipe-scroll.test.d.ts.map +0 -1
  63. package/dist/tests/tools/gestures/swipe-scroll.test.js +0 -63
  64. package/dist/tests/tools/gestures/swipe-scroll.test.js.map +0 -1
  65. package/dist/tests/tools/interactions/webdriver-ai-element-rejection.test.d.ts +0 -2
  66. package/dist/tests/tools/interactions/webdriver-ai-element-rejection.test.d.ts.map +0 -1
  67. package/dist/tests/tools/interactions/webdriver-ai-element-rejection.test.js +0 -94
  68. package/dist/tests/tools/interactions/webdriver-ai-element-rejection.test.js.map +0 -1
  69. package/dist/tests/tools/llm-wording.test.d.ts +0 -2
  70. package/dist/tests/tools/llm-wording.test.d.ts.map +0 -1
  71. package/dist/tests/tools/llm-wording.test.js +0 -89
  72. package/dist/tests/tools/llm-wording.test.js.map +0 -1
  73. package/dist/tests/tools/session/device-info.test.d.ts +0 -2
  74. package/dist/tests/tools/session/device-info.test.d.ts.map +0 -1
  75. package/dist/tests/tools/session/device-info.test.js +0 -144
  76. package/dist/tests/tools/session/device-info.test.js.map +0 -1
  77. package/dist/tests/tools/session/file-transfer.test.d.ts +0 -2
  78. package/dist/tests/tools/session/file-transfer.test.d.ts.map +0 -1
  79. package/dist/tests/tools/session/file-transfer.test.js +0 -98
  80. package/dist/tests/tools/session/file-transfer.test.js.map +0 -1
  81. package/dist/tests/tools/session/session.test.d.ts +0 -2
  82. package/dist/tests/tools/session/session.test.d.ts.map +0 -1
  83. package/dist/tests/tools/session/session.test.js +0 -413
  84. package/dist/tests/tools/session/session.test.js.map +0 -1
  85. package/dist/tests/utils/collection.test.d.ts +0 -2
  86. package/dist/tests/utils/collection.test.d.ts.map +0 -1
  87. package/dist/tests/utils/collection.test.js +0 -87
  88. package/dist/tests/utils/collection.test.js.map +0 -1
  89. package/dist/tests/utils/paths.test.d.ts +0 -2
  90. package/dist/tests/utils/paths.test.d.ts.map +0 -1
  91. package/dist/tests/utils/paths.test.js +0 -21
  92. package/dist/tests/utils/paths.test.js.map +0 -1
  93. package/dist/tests/verify.test.d.ts +0 -2
  94. package/dist/tests/verify.test.d.ts.map +0 -1
  95. package/dist/tests/verify.test.js +0 -148
  96. package/dist/tests/verify.test.js.map +0 -1
  97. package/dist/tests/vision-finder.test.d.ts +0 -10
  98. package/dist/tests/vision-finder.test.d.ts.map +0 -1
  99. package/dist/tests/vision-finder.test.js +0 -420
  100. package/dist/tests/vision-finder.test.js.map +0 -1
@@ -1,586 +0,0 @@
1
- import { afterEach, describe, expect, jest, test } from '@jest/globals';
2
- import { z } from 'zod';
3
- const registeredServers = [];
4
- const safeDeleteAllSessions = jest.fn();
5
- let sessions = [];
6
- const testToolParameters = z.object({});
7
- class MockFastMCP {
8
- options;
9
- tools = [];
10
- resources = [];
11
- addResourceTemplatesCallCount = 0;
12
- addResourcesCallCount = 0;
13
- addToolsCallCount = 0;
14
- handlers = new Map();
15
- constructor(options) {
16
- this.options = options;
17
- registeredServers.push(this);
18
- }
19
- addTool(toolDef) {
20
- const existingIndex = this.tools.findIndex((tool) => tool.name === toolDef.name);
21
- if (existingIndex !== -1) {
22
- this.tools.splice(existingIndex, 1);
23
- }
24
- this.tools.push(toolDef);
25
- }
26
- addTools(toolDefs) {
27
- this.addToolsCallCount += 1;
28
- const newToolNames = new Set(toolDefs.map((tool) => tool.name));
29
- for (let index = this.tools.length - 1; index >= 0; index -= 1) {
30
- if (newToolNames.has(this.tools[index].name)) {
31
- this.tools.splice(index, 1);
32
- }
33
- }
34
- this.tools.push(...toolDefs);
35
- }
36
- addResource(resourceDef) {
37
- this.resources.push(resourceDef);
38
- }
39
- addResources(resourceDefs) {
40
- this.addResourcesCallCount += 1;
41
- this.resources.push(...resourceDefs);
42
- }
43
- addResourceTemplate(resourceDef) {
44
- this.resources.push(resourceDef);
45
- }
46
- addResourceTemplates(resourceDefs) {
47
- this.addResourceTemplatesCallCount += 1;
48
- this.resources.push(...resourceDefs);
49
- }
50
- on(eventName, handler) {
51
- const handlers = this.handlers.get(eventName) ?? [];
52
- handlers.push(handler);
53
- this.handlers.set(eventName, handlers);
54
- }
55
- async emitTest(eventName, event) {
56
- for (const handler of this.handlers.get(eventName) ?? []) {
57
- await handler(event);
58
- }
59
- }
60
- }
61
- await jest.unstable_mockModule('fastmcp', () => ({
62
- FastMCP: MockFastMCP,
63
- }));
64
- await jest.unstable_mockModule('../tools/index', () => ({
65
- default: (server) => {
66
- server.addTool({
67
- name: 'builtin_tool',
68
- description: 'Built-in test tool',
69
- parameters: {},
70
- execute: async () => ({
71
- content: [{ type: 'text', text: 'builtin result' }],
72
- }),
73
- });
74
- server.addTool({
75
- name: 'blocked_tool',
76
- description: 'Blocked test tool',
77
- parameters: {},
78
- execute: async () => ({
79
- content: [{ type: 'text', text: 'blocked result' }],
80
- }),
81
- });
82
- },
83
- }));
84
- await jest.unstable_mockModule('../resources/index', () => ({
85
- default: (server) => {
86
- server.addResource({
87
- uri: 'generate://code-with-locators',
88
- name: 'Generate Code With Locators',
89
- load: async () => ({
90
- text: 'allowed resource',
91
- }),
92
- });
93
- server.addResource({
94
- uri: 'device://state',
95
- name: 'Device State',
96
- load: async () => ({
97
- text: 'blocked resource',
98
- }),
99
- });
100
- },
101
- }));
102
- await jest.unstable_mockModule('../session-store', () => ({
103
- getDriver: jest.fn(() => null),
104
- getSessionId: jest.fn(() => null),
105
- getSessionInfo: jest.fn(() => null),
106
- listSessions: jest.fn(() => sessions),
107
- safeDeleteAllSessions,
108
- }));
109
- await jest.unstable_mockModule('../logger', () => ({
110
- default: {
111
- debug: jest.fn(),
112
- info: jest.fn(),
113
- warn: jest.fn(),
114
- error: jest.fn(),
115
- },
116
- }));
117
- const { createAppiumMcpServer } = await import('../create-server.js');
118
- const { default: log } = await import('../logger.js');
119
- afterEach(() => {
120
- registeredServers.length = 0;
121
- sessions = [];
122
- safeDeleteAllSessions.mockReset();
123
- jest.mocked(log.warn).mockReset();
124
- delete process.env.APPIUM_MCP_ON_CLIENT_DISCONNECT;
125
- });
126
- describe('createAppiumMcpServer plugin lifecycle', () => {
127
- test('disables FastMCP roots negotiation', () => {
128
- createAppiumMcpServer();
129
- expect(registeredServers[0]?.options).toMatchObject({
130
- roots: {
131
- enabled: false,
132
- },
133
- });
134
- });
135
- test('registers plugin capabilities during construction but initializes lazily', async () => {
136
- let registerCalled = false;
137
- let initialized = false;
138
- const plugin = {
139
- name: 'lazy-plugin',
140
- version: '1.0.0',
141
- register(_registry, core) {
142
- registerCalled = true;
143
- expect(core.getSessionId()).toBeNull();
144
- },
145
- async initialize() {
146
- initialized = true;
147
- },
148
- };
149
- const server = createAppiumMcpServer({
150
- plugins: [plugin],
151
- });
152
- expect(registerCalled).toBe(true);
153
- expect(initialized).toBe(false);
154
- await server.emitTest('connect', { session: 'client-1' });
155
- expect(initialized).toBe(true);
156
- });
157
- test('wraps built-in tools with beforeCall and afterCall hooks', async () => {
158
- const calls = [];
159
- const plugin = {
160
- name: 'hook-plugin',
161
- version: '1.0.0',
162
- async beforeCall(ctx) {
163
- calls.push(`before:${ctx.toolName}`);
164
- },
165
- async afterCall(ctx, result) {
166
- calls.push(`after:${ctx.toolName}`);
167
- return {
168
- ...result,
169
- content: [{ type: 'text', text: 'modified builtin result' }],
170
- };
171
- },
172
- };
173
- const server = createAppiumMcpServer({
174
- plugins: [plugin],
175
- });
176
- const result = (await server.tools[0].execute({}, {}));
177
- expect(calls).toEqual(['before:builtin_tool', 'after:builtin_tool']);
178
- expect(result.content[0]).toEqual({
179
- type: 'text',
180
- text: 'modified builtin result',
181
- });
182
- });
183
- test('hides nonmatching built-in tools and resources from registration', () => {
184
- const server = createAppiumMcpServer({
185
- policy: {
186
- allowTools: [/^builtin_tool$/],
187
- allowResources: [/^Generate Code With Locators$/],
188
- },
189
- });
190
- expect(server.tools.map((tool) => tool.name)).toEqual(['builtin_tool']);
191
- expect(server.resources.map((resource) => 'uri' in resource ? resource.uri : resource.uriTemplate)).toEqual(['generate://code-with-locators']);
192
- });
193
- test('applies policy to plugin tools before registration', () => {
194
- const plugin = {
195
- name: 'policy-plugin',
196
- version: '1.0.0',
197
- register(registry) {
198
- registry.addTool({
199
- name: 'plugin_allowed',
200
- description: 'Allowed plugin tool',
201
- parameters: testToolParameters,
202
- execute: async () => ({
203
- content: [{ type: 'text', text: 'allowed' }],
204
- }),
205
- });
206
- registry.addTool({
207
- name: 'plugin_blocked',
208
- description: 'Blocked plugin tool',
209
- parameters: testToolParameters,
210
- execute: async () => ({
211
- content: [{ type: 'text', text: 'blocked' }],
212
- }),
213
- });
214
- },
215
- };
216
- const server = createAppiumMcpServer({
217
- plugins: [plugin],
218
- policy: {
219
- allowTools: [/^plugin_allowed$/, /^builtin_tool$/],
220
- },
221
- });
222
- expect(server.tools.map((tool) => tool.name)).toEqual([
223
- 'builtin_tool',
224
- 'plugin_allowed',
225
- ]);
226
- });
227
- test('allows plugin tools to override built-in tools by name', async () => {
228
- const plugin = {
229
- name: 'override-plugin',
230
- version: '1.0.0',
231
- register(registry) {
232
- registry.addTool({
233
- name: 'builtin_tool',
234
- description: 'Plugin override for built-in test tool',
235
- parameters: testToolParameters,
236
- execute: async () => ({
237
- content: [{ type: 'text', text: 'plugin override result' }],
238
- }),
239
- });
240
- },
241
- };
242
- const server = createAppiumMcpServer({
243
- plugins: [plugin],
244
- });
245
- expect(server.tools.map((tool) => tool.name)).toEqual([
246
- 'blocked_tool',
247
- 'builtin_tool',
248
- ]);
249
- const overriddenTool = server.tools.find((tool) => tool.name === 'builtin_tool');
250
- expect(overriddenTool?.description).toBe('Plugin override for built-in test tool');
251
- const result = (await overriddenTool?.execute({}, {}));
252
- expect(result.content[0]).toEqual({
253
- type: 'text',
254
- text: 'plugin override result',
255
- });
256
- });
257
- test('applies policy to batch tool and resource registration methods', () => {
258
- const server = createAppiumMcpServer({
259
- policy: {
260
- allowTools: [/^builtin_tool$/, /^batch_allowed_/],
261
- allowResources: [/^Batch Allowed/],
262
- },
263
- });
264
- server.addTools([
265
- {
266
- name: 'batch_allowed_first',
267
- description: 'Allowed batch tool',
268
- parameters: {},
269
- execute: async () => ({ content: [] }),
270
- },
271
- {
272
- name: 'batch_blocked',
273
- description: 'Blocked batch tool',
274
- parameters: {},
275
- execute: async () => ({ content: [] }),
276
- },
277
- {
278
- name: 'batch_allowed_second',
279
- description: 'Allowed batch tool',
280
- parameters: {},
281
- execute: async () => ({ content: [] }),
282
- },
283
- ]);
284
- server.addResources([
285
- {
286
- uri: 'batch://allowed-resource',
287
- name: 'Batch Allowed Resource',
288
- load: async () => ({ text: 'allowed resource' }),
289
- },
290
- {
291
- uri: 'batch://blocked-resource',
292
- name: 'Batch Blocked Resource',
293
- load: async () => ({ text: 'blocked resource' }),
294
- },
295
- ]);
296
- server.addResourceTemplates([
297
- {
298
- uriTemplate: 'batch://allowed-template/{id}',
299
- name: 'Batch Allowed Template',
300
- load: async () => ({ text: 'allowed template' }),
301
- },
302
- {
303
- uriTemplate: 'batch://blocked-template/{id}',
304
- name: 'Batch Blocked Template',
305
- load: async () => ({ text: 'blocked template' }),
306
- },
307
- ]);
308
- expect(server.addToolsCallCount).toBe(1);
309
- expect(server.addResourcesCallCount).toBe(1);
310
- expect(server.addResourceTemplatesCallCount).toBe(1);
311
- expect(server.tools.map((tool) => tool.name)).toEqual([
312
- 'builtin_tool',
313
- 'batch_allowed_first',
314
- 'batch_allowed_second',
315
- ]);
316
- expect(server.resources).toEqual([
317
- expect.objectContaining({
318
- name: 'Batch Allowed Resource',
319
- uri: 'batch://allowed-resource',
320
- }),
321
- expect.objectContaining({
322
- name: 'Batch Allowed Template',
323
- uriTemplate: 'batch://allowed-template/{id}',
324
- }),
325
- ]);
326
- });
327
- test('keeps plugin hooks for policy-allowed batch tool registrations', async () => {
328
- const calls = [];
329
- const plugin = {
330
- name: 'batch-hook-plugin',
331
- version: '1.0.0',
332
- async beforeCall(ctx) {
333
- calls.push(`before:${ctx.toolName}`);
334
- },
335
- async afterCall(ctx, result) {
336
- calls.push(`after:${ctx.toolName}`);
337
- return result;
338
- },
339
- };
340
- const server = createAppiumMcpServer({
341
- plugins: [plugin],
342
- policy: {
343
- allowTools: [/^builtin_tool$/, /^batch_allowed$/],
344
- },
345
- });
346
- server.addTools([
347
- {
348
- name: 'batch_allowed',
349
- description: 'Allowed batch tool',
350
- parameters: {},
351
- execute: async () => ({
352
- content: [{ type: 'text', text: 'batch result' }],
353
- }),
354
- },
355
- {
356
- name: 'batch_blocked',
357
- description: 'Blocked batch tool',
358
- parameters: {},
359
- execute: async () => ({
360
- content: [{ type: 'text', text: 'blocked result' }],
361
- }),
362
- },
363
- ]);
364
- expect(server.tools.map((tool) => tool.name)).toEqual([
365
- 'builtin_tool',
366
- 'batch_allowed',
367
- ]);
368
- const batchTool = server.tools.find((tool) => tool.name === 'batch_allowed');
369
- await batchTool?.execute({}, {});
370
- expect(calls).toEqual(['before:batch_allowed', 'after:batch_allowed']);
371
- expect(log.warn).toHaveBeenCalledWith('Policy denied tool registration: batch_blocked (not_in_allowlist)');
372
- });
373
- test('skips fully denied batch registration calls', () => {
374
- const server = createAppiumMcpServer({
375
- policy: {
376
- allowTools: [/^builtin_tool$/],
377
- allowResources: [/^Generate Code With Locators$/],
378
- },
379
- });
380
- server.addTools([
381
- {
382
- name: 'batch_blocked_first',
383
- description: 'Blocked batch tool',
384
- parameters: {},
385
- execute: async () => ({ content: [] }),
386
- },
387
- {
388
- name: 'batch_blocked_second',
389
- description: 'Blocked batch tool',
390
- parameters: {},
391
- execute: async () => ({ content: [] }),
392
- },
393
- ]);
394
- server.addResources([
395
- {
396
- uri: 'batch://blocked-resource',
397
- name: 'Batch Blocked Resource',
398
- load: async () => ({ text: 'blocked resource' }),
399
- },
400
- ]);
401
- server.addResourceTemplates([
402
- {
403
- uriTemplate: 'batch://blocked-template/{id}',
404
- name: 'Batch Blocked Template',
405
- load: async () => ({ text: 'blocked template' }),
406
- },
407
- ]);
408
- expect(server.addToolsCallCount).toBe(0);
409
- expect(server.addResourcesCallCount).toBe(0);
410
- expect(server.addResourceTemplatesCallCount).toBe(0);
411
- expect(server.tools.map((tool) => tool.name)).toEqual(['builtin_tool']);
412
- expect(server.resources.map((resource) => resource.name)).toEqual([
413
- 'Generate Code With Locators',
414
- ]);
415
- expect(log.warn).toHaveBeenCalledWith('Policy denied tool registration: batch_blocked_first (not_in_allowlist)');
416
- expect(log.warn).toHaveBeenCalledWith('Policy denied tool registration: batch_blocked_second (not_in_allowlist)');
417
- });
418
- test('matches resource templates by name only', () => {
419
- const server = createAppiumMcpServer({
420
- policy: {
421
- allowTools: [/^builtin_tool$/],
422
- allowResources: [/^Allowed Template$/],
423
- },
424
- });
425
- server.addResourceTemplate({
426
- uriTemplate: 'batch://not-the-policy-target/{id}',
427
- name: 'Allowed Template',
428
- load: async () => ({ text: 'allowed template' }),
429
- });
430
- server.addResourceTemplate({
431
- uriTemplate: 'batch://allowed-template/{id}',
432
- load: async () => ({ text: 'unnamed template' }),
433
- });
434
- expect(server.resources).toEqual([
435
- expect.objectContaining({
436
- name: 'Allowed Template',
437
- uriTemplate: 'batch://not-the-policy-target/{id}',
438
- }),
439
- ]);
440
- expect(log.warn).toHaveBeenCalledWith('Policy denied resource template registration: <unnamed>; uriTemplate=batch://allowed-template/{id} (not_in_allowlist)');
441
- });
442
- test('fails during construction when policy allowlists are invalid', () => {
443
- expect(() => createAppiumMcpServer({
444
- policy: {
445
- allowTools: ['builtin_tool'],
446
- },
447
- })).toThrow('policy.allowTools must contain only RegExp values');
448
- });
449
- test('destroys plugins only after the last client disconnects', async () => {
450
- let initializeCount = 0;
451
- let destroyCount = 0;
452
- const plugin = {
453
- name: 'lifecycle-plugin',
454
- version: '1.0.0',
455
- async initialize() {
456
- initializeCount += 1;
457
- },
458
- async destroy() {
459
- destroyCount += 1;
460
- },
461
- };
462
- const server = createAppiumMcpServer({
463
- plugins: [plugin],
464
- });
465
- await server.emitTest('connect', { session: 'client-1' });
466
- await server.emitTest('connect', { session: 'client-2' });
467
- await server.emitTest('disconnect', { session: 'client-1' });
468
- expect(initializeCount).toBe(1);
469
- expect(destroyCount).toBe(0);
470
- await server.emitTest('disconnect', { session: 'client-2' });
471
- expect(destroyCount).toBe(1);
472
- });
473
- test('initializes plugins once when clients connect concurrently', async () => {
474
- let initializeCount = 0;
475
- let resolveInitialize;
476
- let markInitializeStarted;
477
- const initializeStarted = new Promise((resolve) => {
478
- markInitializeStarted = resolve;
479
- });
480
- const plugin = {
481
- name: 'concurrent-plugin',
482
- version: '1.0.0',
483
- async initialize() {
484
- initializeCount += 1;
485
- markInitializeStarted?.();
486
- await new Promise((resolve) => {
487
- resolveInitialize = resolve;
488
- });
489
- },
490
- };
491
- const server = createAppiumMcpServer({
492
- plugins: [plugin],
493
- });
494
- const connectA = server.emitTest('connect', { session: 'client-1' });
495
- const connectB = server.emitTest('connect', { session: 'client-2' });
496
- await initializeStarted;
497
- expect(initializeCount).toBe(1);
498
- resolveInitialize?.();
499
- await Promise.all([connectA, connectB]);
500
- expect(initializeCount).toBe(1);
501
- });
502
- test('re-initializes only after an in-flight destroy finishes', async () => {
503
- const calls = [];
504
- let resolveDestroy;
505
- const plugin = {
506
- name: 'destroy-race-plugin',
507
- version: '1.0.0',
508
- async initialize() {
509
- calls.push('initialize');
510
- },
511
- async destroy() {
512
- calls.push('destroy-start');
513
- await new Promise((resolve) => {
514
- resolveDestroy = resolve;
515
- });
516
- calls.push('destroy-end');
517
- },
518
- };
519
- const server = createAppiumMcpServer({
520
- plugins: [plugin],
521
- });
522
- await server.emitTest('connect', { session: 'client-1' });
523
- const disconnect = server.emitTest('disconnect', { session: 'client-1' });
524
- await Promise.resolve();
525
- const reconnect = server.emitTest('connect', { session: 'client-2' });
526
- expect(calls).toEqual(['initialize', 'destroy-start']);
527
- resolveDestroy?.();
528
- await Promise.all([disconnect, reconnect]);
529
- expect(calls).toEqual([
530
- 'initialize',
531
- 'destroy-start',
532
- 'destroy-end',
533
- 'initialize',
534
- ]);
535
- });
536
- test('destroys plugins after final disconnect during pending initialization', async () => {
537
- let initializeCount = 0;
538
- let destroyCount = 0;
539
- let resolveInitialize;
540
- const plugin = {
541
- name: 'pending-init-plugin',
542
- version: '1.0.0',
543
- async initialize() {
544
- initializeCount += 1;
545
- await new Promise((resolve) => {
546
- resolveInitialize = resolve;
547
- });
548
- },
549
- async destroy() {
550
- destroyCount += 1;
551
- },
552
- };
553
- const server = createAppiumMcpServer({
554
- plugins: [plugin],
555
- });
556
- const connect = server.emitTest('connect', { session: 'client-1' });
557
- await Promise.resolve();
558
- const disconnect = server.emitTest('disconnect', { session: 'client-1' });
559
- expect(initializeCount).toBe(1);
560
- expect(destroyCount).toBe(0);
561
- resolveInitialize?.();
562
- await Promise.all([connect, disconnect]);
563
- expect(destroyCount).toBe(1);
564
- });
565
- test('destroys plugins on final disconnect when session cleanup policy is skip', async () => {
566
- process.env.APPIUM_MCP_ON_CLIENT_DISCONNECT = 'skip';
567
- sessions = [{ sessionId: 'session-1', isActive: true, ownership: 'owned' }];
568
- let destroyCount = 0;
569
- const plugin = {
570
- name: 'skip-policy-plugin',
571
- version: '1.0.0',
572
- async initialize() { },
573
- async destroy() {
574
- destroyCount += 1;
575
- },
576
- };
577
- const server = createAppiumMcpServer({
578
- plugins: [plugin],
579
- });
580
- await server.emitTest('connect', { session: 'client-1' });
581
- await server.emitTest('disconnect', { session: 'client-1' });
582
- expect(safeDeleteAllSessions).not.toHaveBeenCalled();
583
- expect(destroyCount).toBe(1);
584
- });
585
- });
586
- //# sourceMappingURL=create-server.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-server.test.js","sourceRoot":"","sources":["../../src/tests/create-server.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=generate-all-locators.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-all-locators.test.d.ts","sourceRoot":"","sources":["../../src/tests/generate-all-locators.test.ts"],"names":[],"mappings":""}