豆豆友情提示:这是一个非官方 GitHub 代理镜像,主要用于网络测试或访问加速。请勿在此进行登录、注册或处理任何敏感信息。进行这些操作请务必访问官方网站 github.com。 Raw 内容也通过此代理提供。
Skip to content

Commit 176aa8a

Browse files
OzTamirOrKoN
authored andcommitted
fix: add test for empty resourceTypes array
1 parent ce3ee6a commit 176aa8a

File tree

2 files changed

+55
-26
lines changed

2 files changed

+55
-26
lines changed

src/tools/network.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export const listNetworkRequests = defineTool({
6565
)
6666
.optional()
6767
.describe(
68-
'Filter requests to only return requests of the specified resource types. When omitted, returns all requests.',
68+
'Filter requests to only return requests of the specified resource types. When omitted or empty, returns all requests.',
6969
),
7070
},
7171
handler: async (request, response) => {

tests/McpResponse.test.ts

Lines changed: 54 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
* SPDX-License-Identifier: Apache-2.0
55
*/
66
import assert from 'node:assert';
7-
import {describe, it} from 'node:test';
7+
import { describe, it } from 'node:test';
88

9-
import {getMockRequest, html, withBrowser} from './utils.js';
9+
import { getMockRequest, html, withBrowser } from './utils.js';
1010

1111
describe('McpResponse', () => {
1212
it('list pages', async () => {
@@ -120,7 +120,7 @@ Navigation timeout set to 100000 ms`,
120120
});
121121
it('adds image when image is attached', async () => {
122122
await withBrowser(async (response, context) => {
123-
response.attachImage({data: 'imageBase64', mimeType: 'image/png'});
123+
response.attachImage({ data: 'imageBase64', mimeType: 'image/png' });
124124
const result = await response.handle('test', context);
125125
assert.strictEqual(result[0].text, `# test response`);
126126
assert.equal(result[1].type, 'image');
@@ -273,10 +273,10 @@ describe('McpResponse network request filtering', () => {
273273
});
274274
context.getNetworkRequests = () => {
275275
return [
276-
getMockRequest({resourceType: 'script'}),
277-
getMockRequest({resourceType: 'image'}),
278-
getMockRequest({resourceType: 'stylesheet'}),
279-
getMockRequest({resourceType: 'document'}),
276+
getMockRequest({ resourceType: 'script' }),
277+
getMockRequest({ resourceType: 'image' }),
278+
getMockRequest({ resourceType: 'stylesheet' }),
279+
getMockRequest({ resourceType: 'document' }),
280280
];
281281
};
282282
const result = await response.handle('test', context);
@@ -298,9 +298,9 @@ http://example.com GET [pending]`,
298298
});
299299
context.getNetworkRequests = () => {
300300
return [
301-
getMockRequest({resourceType: 'script'}),
302-
getMockRequest({resourceType: 'image'}),
303-
getMockRequest({resourceType: 'stylesheet'}),
301+
getMockRequest({ resourceType: 'script' }),
302+
getMockRequest({ resourceType: 'image' }),
303+
getMockRequest({ resourceType: 'stylesheet' }),
304304
];
305305
};
306306
const result = await response.handle('test', context);
@@ -321,9 +321,9 @@ http://example.com GET [pending]`,
321321
});
322322
context.getNetworkRequests = () => {
323323
return [
324-
getMockRequest({resourceType: 'script'}),
325-
getMockRequest({resourceType: 'image'}),
326-
getMockRequest({resourceType: 'stylesheet'}),
324+
getMockRequest({ resourceType: 'script' }),
325+
getMockRequest({ resourceType: 'image' }),
326+
getMockRequest({ resourceType: 'stylesheet' }),
327327
];
328328
};
329329
const result = await response.handle('test', context);
@@ -341,11 +341,40 @@ No requests found.`,
341341
response.setIncludeNetworkRequests(true);
342342
context.getNetworkRequests = () => {
343343
return [
344-
getMockRequest({resourceType: 'script'}),
345-
getMockRequest({resourceType: 'image'}),
346-
getMockRequest({resourceType: 'stylesheet'}),
347-
getMockRequest({resourceType: 'document'}),
348-
getMockRequest({resourceType: 'font'}),
344+
getMockRequest({ resourceType: 'script' }),
345+
getMockRequest({ resourceType: 'image' }),
346+
getMockRequest({ resourceType: 'stylesheet' }),
347+
getMockRequest({ resourceType: 'document' }),
348+
getMockRequest({ resourceType: 'font' }),
349+
];
350+
};
351+
const result = await response.handle('test', context);
352+
assert.strictEqual(
353+
result[0].text,
354+
`# test response
355+
## Network requests
356+
Showing 1-5 of 5 (Page 1 of 1).
357+
http://example.com GET [pending]
358+
http://example.com GET [pending]
359+
http://example.com GET [pending]
360+
http://example.com GET [pending]
361+
http://example.com GET [pending]`,
362+
);
363+
});
364+
});
365+
366+
it('shows all requests when empty resourceTypes array is provided', async () => {
367+
await withBrowser(async (response, context) => {
368+
response.setIncludeNetworkRequests(true, {
369+
resourceTypes: [],
370+
});
371+
context.getNetworkRequests = () => {
372+
return [
373+
getMockRequest({ resourceType: 'script' }),
374+
getMockRequest({ resourceType: 'image' }),
375+
getMockRequest({ resourceType: 'stylesheet' }),
376+
getMockRequest({ resourceType: 'document' }),
377+
getMockRequest({ resourceType: 'font' }),
349378
];
350379
};
351380
const result = await response.handle('test', context);
@@ -367,7 +396,7 @@ http://example.com GET [pending]`,
367396
describe('McpResponse network pagination', () => {
368397
it('returns all requests when pagination is not provided', async () => {
369398
await withBrowser(async (response, context) => {
370-
const requests = Array.from({length: 5}, () => getMockRequest());
399+
const requests = Array.from({ length: 5 }, () => getMockRequest());
371400
context.getNetworkRequests = () => requests;
372401
response.setIncludeNetworkRequests(true);
373402
const result = await response.handle('test', context);
@@ -380,13 +409,13 @@ describe('McpResponse network pagination', () => {
380409

381410
it('returns first page by default', async () => {
382411
await withBrowser(async (response, context) => {
383-
const requests = Array.from({length: 30}, (_, idx) =>
384-
getMockRequest({method: `GET-${idx}`}),
412+
const requests = Array.from({ length: 30 }, (_, idx) =>
413+
getMockRequest({ method: `GET-${idx}` }),
385414
);
386415
context.getNetworkRequests = () => {
387416
return requests;
388417
};
389-
response.setIncludeNetworkRequests(true, {pageSize: 10});
418+
response.setIncludeNetworkRequests(true, { pageSize: 10 });
390419
const result = await response.handle('test', context);
391420
const text = (result[0].text as string).toString();
392421
assert.ok(text.includes('Showing 1-10 of 30 (Page 1 of 3).'));
@@ -397,8 +426,8 @@ describe('McpResponse network pagination', () => {
397426

398427
it('returns subsequent page when pageIdx provided', async () => {
399428
await withBrowser(async (response, context) => {
400-
const requests = Array.from({length: 25}, (_, idx) =>
401-
getMockRequest({method: `GET-${idx}`}),
429+
const requests = Array.from({ length: 25 }, (_, idx) =>
430+
getMockRequest({ method: `GET-${idx}` }),
402431
);
403432
context.getNetworkRequests = () => requests;
404433
response.setIncludeNetworkRequests(true, {
@@ -415,7 +444,7 @@ describe('McpResponse network pagination', () => {
415444

416445
it('handles invalid page number by showing first page', async () => {
417446
await withBrowser(async (response, context) => {
418-
const requests = Array.from({length: 5}, () => getMockRequest());
447+
const requests = Array.from({ length: 5 }, () => getMockRequest());
419448
context.getNetworkRequests = () => requests;
420449
response.setIncludeNetworkRequests(true, {
421450
pageSize: 2,

0 commit comments

Comments
 (0)