Skip to content

Commit dedac78

Browse files
committed
test: fix tests
1 parent 874447f commit dedac78

File tree

5 files changed

+90
-59
lines changed

5 files changed

+90
-59
lines changed

tests/McpResponse.test.ts

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ import {join} from 'node:path';
1111
import {describe, it} from 'node:test';
1212

1313
import {
14+
getImageContent,
1415
getMockAggregatedIssue,
1516
getMockRequest,
1617
getMockResponse,
18+
getTextContent,
1719
html,
1820
stabilizeResponseOutput,
1921
withMcpContext,
@@ -25,7 +27,7 @@ describe('McpResponse', () => {
2527
response.setIncludePages(true);
2628
const result = await response.handle('test', context);
2729
assert.equal(result[0].type, 'text');
28-
t.assert.snapshot?.(result[0].text);
30+
t.assert.snapshot?.(getTextContent(result[0]));
2931
});
3032
});
3133

@@ -35,7 +37,7 @@ describe('McpResponse', () => {
3537
response.appendResponseLine('Testing 2');
3638
const result = await response.handle('test', context);
3739
assert.equal(result[0].type, 'text');
38-
t.assert.snapshot?.(result[0].text);
40+
t.assert.snapshot?.(getTextContent(result[0]));
3941
});
4042
});
4143

@@ -45,7 +47,7 @@ describe('McpResponse', () => {
4547
page.accessibility.snapshot = async () => null;
4648
const result = await response.handle('test', context);
4749
assert.equal(result[0].type, 'text');
48-
assert.deepStrictEqual(result[0].text, `# test response`);
50+
assert.deepStrictEqual(getTextContent(result[0]), `# test response`);
4951
});
5052
});
5153

@@ -63,7 +65,7 @@ describe('McpResponse', () => {
6365
response.includeSnapshot();
6466
const result = await response.handle('test', context);
6567
assert.equal(result[0].type, 'text');
66-
t.assert.snapshot?.(result[0].text);
68+
t.assert.snapshot?.(getTextContent(result[0]));
6769
});
6870
});
6971

@@ -81,7 +83,7 @@ describe('McpResponse', () => {
8183
response.includeSnapshot();
8284
const result = await response.handle('test', context);
8385
assert.equal(result[0].type, 'text');
84-
t.assert.snapshot?.(result[0].text);
86+
t.assert.snapshot?.(getTextContent(result[0]));
8587
});
8688
});
8789

@@ -94,7 +96,7 @@ describe('McpResponse', () => {
9496
});
9597
const result = await response.handle('test', context);
9698
assert.equal(result[0].type, 'text');
97-
t.assert.snapshot?.(result[0].text);
99+
t.assert.snapshot?.(getTextContent(result[0]));
98100
});
99101
});
100102

@@ -110,7 +112,7 @@ describe('McpResponse', () => {
110112
});
111113
const result = await response.handle('test', context);
112114
assert.equal(result[0].type, 'text');
113-
t.assert.snapshot?.(stabilizeResponseOutput(result[0].text));
115+
t.assert.snapshot?.(stabilizeResponseOutput(getTextContent(result[0])));
114116
});
115117
const content = await readFile(filePath, 'utf-8');
116118
t.assert.snapshot?.(stabilizeResponseOutput(content));
@@ -124,7 +126,7 @@ describe('McpResponse', () => {
124126
context.setNetworkConditions('Slow 3G');
125127
const result = await response.handle('test', context);
126128
assert.equal(result[0].type, 'text');
127-
t.assert.snapshot?.(result[0].text);
129+
t.assert.snapshot?.(getTextContent(result[0]));
128130
});
129131
});
130132

@@ -133,33 +135,33 @@ describe('McpResponse', () => {
133135
const result = await response.handle('test', context);
134136
context.setNetworkConditions(null);
135137
assert.equal(result[0].type, 'text');
136-
assert.strictEqual(result[0].text, `# test response`);
138+
assert.strictEqual(getTextContent(result[0]), `# test response`);
137139
});
138140
});
139141
it('adds image when image is attached', async () => {
140142
await withMcpContext(async (response, context) => {
141143
response.attachImage({data: 'imageBase64', mimeType: 'image/png'});
142144
const result = await response.handle('test', context);
143-
assert.strictEqual(result[0].text, `# test response`);
145+
assert.strictEqual(getTextContent(result[0]), `# test response`);
144146
assert.equal(result[1].type, 'image');
145-
assert.strictEqual(result[1].data, 'imageBase64');
146-
assert.strictEqual(result[1].mimeType, 'image/png');
147+
assert.strictEqual(getImageContent(result[1]).data, 'imageBase64');
148+
assert.strictEqual(getImageContent(result[1]).mimeType, 'image/png');
147149
});
148150
});
149151

150152
it('adds cpu throttling setting when it is over 1', async t => {
151153
await withMcpContext(async (response, context) => {
152154
context.setCpuThrottlingRate(4);
153155
const result = await response.handle('test', context);
154-
t.assert.snapshot?.(result[0].text);
156+
t.assert.snapshot?.(getTextContent(result[0]));
155157
});
156158
});
157159

158160
it('does not include cpu throttling setting when it is 1', async () => {
159161
await withMcpContext(async (response, context) => {
160162
context.setCpuThrottlingRate(1);
161163
const result = await response.handle('test', context);
162-
assert.strictEqual(result[0].text, `# test response`);
164+
assert.strictEqual(getTextContent(result[0]), `# test response`);
163165
});
164166
});
165167

@@ -177,7 +179,7 @@ describe('McpResponse', () => {
177179
await dialogPromise;
178180
const result = await response.handle('test', context);
179181
await context.getDialog()?.dismiss();
180-
t.assert.snapshot?.(result[0].text);
182+
t.assert.snapshot?.(getTextContent(result[0]));
181183
});
182184
});
183185

@@ -195,7 +197,7 @@ describe('McpResponse', () => {
195197
await dialogPromise;
196198
const result = await response.handle('test', context);
197199
await context.getDialog()?.dismiss();
198-
t.assert.snapshot?.(result[0].text);
200+
t.assert.snapshot?.(getTextContent(result[0]));
199201
});
200202
});
201203

@@ -206,7 +208,7 @@ describe('McpResponse', () => {
206208
return [getMockRequest({stableId: 1}), getMockRequest({stableId: 2})];
207209
};
208210
const result = await response.handle('test', context);
209-
t.assert.snapshot?.(result[0].text);
211+
t.assert.snapshot?.(getTextContent(result[0]));
210212
});
211213
});
212214

@@ -217,7 +219,7 @@ describe('McpResponse', () => {
217219
return [getMockRequest()];
218220
};
219221
const result = await response.handle('test', context);
220-
assert.strictEqual(result[0].text, `# test response`);
222+
assert.strictEqual(getTextContent(result[0]), `# test response`);
221223
});
222224
});
223225

@@ -249,7 +251,7 @@ describe('McpResponse', () => {
249251

250252
const result = await response.handle('test', context);
251253

252-
t.assert.snapshot?.(result[0].text);
254+
t.assert.snapshot?.(getTextContent(result[0]));
253255
});
254256
});
255257

@@ -265,7 +267,7 @@ describe('McpResponse', () => {
265267
};
266268
response.attachNetworkRequest(1);
267269
const result = await response.handle('test', context);
268-
t.assert.snapshot?.(result[0].text);
270+
t.assert.snapshot?.(getTextContent(result[0]));
269271
});
270272
});
271273

@@ -283,17 +285,17 @@ describe('McpResponse', () => {
283285
});
284286
await consoleMessagePromise;
285287
const result = await response.handle('test', context);
286-
assert.ok(result[0].text);
287-
t.assert.snapshot?.(result[0].text);
288+
assert.ok(getTextContent(result[0]));
289+
t.assert.snapshot?.(getTextContent(result[0]));
288290
});
289291
});
290292

291293
it('adds a message when no console messages exist', async t => {
292294
await withMcpContext(async (response, context) => {
293295
response.setIncludeConsoleData(true);
294296
const result = await response.handle('test', context);
295-
assert.ok(result[0].text);
296-
t.assert.snapshot?.(result[0].text);
297+
assert.ok(getTextContent(result[0]));
298+
t.assert.snapshot?.(getTextContent(result[0]));
297299
});
298300
});
299301

@@ -311,7 +313,7 @@ describe('McpResponse', () => {
311313
};
312314

313315
const result = await response.handle('test', context);
314-
const text = (result[0].text as string).toString();
316+
const text = getTextContent(result[0]);
315317
assert.ok(text.includes('<no console messages found>'));
316318
});
317319
});
@@ -353,7 +355,7 @@ describe('McpResponse network request filtering', () => {
353355
];
354356
};
355357
const result = await response.handle('test', context);
356-
t.assert.snapshot?.(result[0].text);
358+
t.assert.snapshot?.(getTextContent(result[0]));
357359
});
358360
});
359361

@@ -370,7 +372,7 @@ describe('McpResponse network request filtering', () => {
370372
];
371373
};
372374
const result = await response.handle('test', context);
373-
t.assert.snapshot?.(result[0].text);
375+
t.assert.snapshot?.(getTextContent(result[0]));
374376
});
375377
});
376378

@@ -387,7 +389,7 @@ describe('McpResponse network request filtering', () => {
387389
];
388390
};
389391
const result = await response.handle('test', context);
390-
t.assert.snapshot?.(result[0].text);
392+
t.assert.snapshot?.(getTextContent(result[0]));
391393
});
392394
});
393395

@@ -405,7 +407,7 @@ describe('McpResponse network request filtering', () => {
405407
};
406408
const result = await response.handle('test', context);
407409

408-
t.assert.snapshot?.(result[0].text);
410+
t.assert.snapshot?.(getTextContent(result[0]));
409411
});
410412
});
411413

@@ -424,7 +426,7 @@ describe('McpResponse network request filtering', () => {
424426
];
425427
};
426428
const result = await response.handle('test', context);
427-
t.assert.snapshot?.(result[0].text);
429+
t.assert.snapshot?.(getTextContent(result[0]));
428430
});
429431
});
430432
});
@@ -436,7 +438,7 @@ describe('McpResponse network pagination', () => {
436438
context.getNetworkRequests = () => requests;
437439
response.setIncludeNetworkRequests(true);
438440
const result = await response.handle('test', context);
439-
const text = (result[0].text as string).toString();
441+
const text = getTextContent(result[0]);
440442
assert.ok(text.includes('Showing 1-5 of 5 (Page 1 of 1).'));
441443
assert.ok(!text.includes('Next page:'));
442444
assert.ok(!text.includes('Previous page:'));
@@ -453,7 +455,7 @@ describe('McpResponse network pagination', () => {
453455
};
454456
response.setIncludeNetworkRequests(true, {pageSize: 10});
455457
const result = await response.handle('test', context);
456-
const text = (result[0].text as string).toString();
458+
const text = getTextContent(result[0]);
457459
assert.ok(text.includes('Showing 1-10 of 30 (Page 1 of 3).'));
458460
assert.ok(text.includes('Next page: 1'));
459461
assert.ok(!text.includes('Previous page:'));
@@ -471,7 +473,7 @@ describe('McpResponse network pagination', () => {
471473
pageIdx: 1,
472474
});
473475
const result = await response.handle('test', context);
474-
const text = (result[0].text as string).toString();
476+
const text = getTextContent(result[0]);
475477
assert.ok(text.includes('Showing 11-20 of 25 (Page 2 of 3).'));
476478
assert.ok(text.includes('Next page: 2'));
477479
assert.ok(text.includes('Previous page: 0'));
@@ -487,7 +489,7 @@ describe('McpResponse network pagination', () => {
487489
pageIdx: 10, // Invalid page number
488490
});
489491
const result = await response.handle('test', context);
490-
const text = (result[0].text as string).toString();
492+
const text = getTextContent(result[0]);
491493
assert.ok(
492494
text.includes('Invalid page number provided. Showing first page.'),
493495
);

tests/tools/console.test.ts

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
listConsoleMessages,
1616
} from '../../src/tools/console.js';
1717
import {serverHooks} from '../server.js';
18-
import {withMcpContext} from '../utils.js';
18+
import {getTextContent, withMcpContext} from '../utils.js';
1919

2020
describe('console', () => {
2121
before(async () => {
@@ -37,10 +37,8 @@ describe('console', () => {
3737
);
3838
await listConsoleMessages.handler({params: {}}, response, context);
3939
const formattedResponse = await response.handle('test', context);
40-
const textContent = formattedResponse[0] as {text: string};
41-
assert.ok(
42-
textContent.text.includes('msgid=1 [error] This is an error'),
43-
);
40+
const textContent = getTextContent(formattedResponse[0]);
41+
assert.ok(textContent.includes('msgid=1 [error] This is an error'));
4442
});
4543
});
4644

@@ -50,10 +48,8 @@ describe('console', () => {
5048
await page.setContent('<script>throw undefined;</script>');
5149
await listConsoleMessages.handler({params: {}}, response, context);
5250
const formattedResponse = await response.handle('test', context);
53-
const textContent = formattedResponse[0] as {text: string};
54-
assert.ok(
55-
textContent.text.includes('msgid=1 [error] undefined (0 args)'),
56-
);
51+
const textContent = getTextContent(formattedResponse[0]);
52+
assert.ok(textContent.includes('msgid=1 [error] undefined (0 args)'));
5753
});
5854
});
5955

@@ -70,9 +66,9 @@ describe('console', () => {
7066
await issuePromise;
7167
await listConsoleMessages.handler({params: {}}, response, context);
7268
const formattedResponse = await response.handle('test', context);
73-
const textContent = formattedResponse[0] as {text: string};
69+
const textContent = getTextContent(formattedResponse[0]);
7470
assert.ok(
75-
textContent.text.includes(
71+
textContent.includes(
7672
`msgid=1 [issue] An element doesn't have an autocomplete attribute (count: 1)`,
7773
),
7874
);
@@ -93,9 +89,9 @@ describe('console', () => {
9389
await listConsoleMessages.handler({params: {}}, response, context);
9490
{
9591
const formattedResponse = await response.handle('test', context);
96-
const textContent = formattedResponse[0] as {text: string};
92+
const textContent = getTextContent(formattedResponse[0]);
9793
assert.ok(
98-
textContent.text.includes(
94+
textContent.includes(
9995
`msgid=1 [issue] An element doesn't have an autocomplete attribute (count: 1)`,
10096
),
10197
);
@@ -111,9 +107,9 @@ describe('console', () => {
111107
await anotherIssuePromise;
112108
{
113109
const formattedResponse = await response.handle('test', context);
114-
const textContent = formattedResponse[0] as {text: string};
110+
const textContent = getTextContent(formattedResponse[0]);
115111
assert.ok(
116-
textContent.text.includes(
112+
textContent.includes(
117113
`msgid=2 [issue] An element doesn't have an autocomplete attribute (count: 1)`,
118114
),
119115
);
@@ -138,9 +134,9 @@ describe('console', () => {
138134
context,
139135
);
140136
const formattedResponse = await response.handle('test', context);
141-
const textContent = formattedResponse[0] as {text: string};
137+
const textContent = getTextContent(formattedResponse[0]);
142138
assert.ok(
143-
textContent.text.includes('msgid=1 [error] This is an error'),
139+
textContent.includes('msgid=1 [error] This is an error'),
144140
'Should contain console message body',
145141
);
146142
});
@@ -168,7 +164,7 @@ describe('console', () => {
168164
context,
169165
);
170166
const formattedResponse = await response2.handle('test', context);
171-
t.assert.snapshot?.(formattedResponse[0].text);
167+
t.assert.snapshot?.(getTextContent(formattedResponse[0]));
172168
});
173169
});
174170
it('gets issue details with request id parsing', async t => {
@@ -223,7 +219,7 @@ describe('console', () => {
223219
context,
224220
);
225221
const formattedResponse = await response2.handle('test', context);
226-
const rawText = formattedResponse[0].text as string;
222+
const rawText = getTextContent(formattedResponse[0]);
227223
const sanitizedText = rawText
228224
.replaceAll(/ID: \d+/g, 'ID: <ID>')
229225
.replaceAll(/reqid=\d+/g, 'reqid=<reqid>')

tests/tools/network.test.js.snapshot

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Status: [success - 200]
66
- accept-language:en-US,en;q=0.9
77
- upgrade-insecure-requests:1
88
- user-agent:<user-agent>
9-
- sec-ch-ua:"Not_A Brand";v="99", "Chromium";v="142"
9+
- sec-ch-ua:"Chromium";v="<version>", "Not A(Brand";v="24"
1010
- sec-ch-ua-mobile:?0
1111
- sec-ch-ua-platform:"<os>"
1212
- accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7

0 commit comments

Comments
 (0)