Skip to content

Commit 36ae314

Browse files
ergunshOrKoN
authored andcommitted
chore: Fix formatting
1 parent 3c34e0b commit 36ae314

File tree

4 files changed

+98
-45
lines changed

4 files changed

+98
-45
lines changed

src/telemetry/watchdog/clearcut-sender.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,9 @@ export class ClearcutSender {
200200
headers: {
201201
'Content-Type': 'application/json',
202202
// Used in E2E tests to confirm that the watchdog process is killed
203-
...(this.#includePidHeader ? {'X-Watchdog-Pid': process.pid.toString()} : {}),
203+
...(this.#includePidHeader
204+
? {'X-Watchdog-Pid': process.pid.toString()}
205+
: {}),
204206
},
205207
body: JSON.stringify(requestBody),
206208
signal: controller.signal,

src/telemetry/watchdog/main.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ interface WatchdogArgs {
2828
}
2929

3030
function parseWatchdogArgs(): WatchdogArgs {
31-
const {values} = parseArgs({
31+
const {values} = parseArgs({
3232
options: {
3333
'parent-pid': {type: 'string'},
3434
'app-version': {type: 'string'},
@@ -46,8 +46,8 @@ function parseWatchdogArgs(): WatchdogArgs {
4646
const osType = parseInt(values['os-type'] ?? '', 10);
4747
if (isNaN(parentPid) || !appVersion || isNaN(osType)) {
4848
console.error(
49-
'Invalid arguments provided for watchdog process: ',
50-
JSON.stringify({parentPid, appVersion, osType})
49+
'Invalid arguments provided for watchdog process: ',
50+
JSON.stringify({parentPid, appVersion, osType}),
5151
);
5252
process.exit(1);
5353
}
@@ -56,7 +56,7 @@ function parseWatchdogArgs(): WatchdogArgs {
5656
const logFile = values['log-file'];
5757
const clearcutEndpoint = values['clearcut-endpoint'];
5858
const clearcutIncludePidHeader = values['clearcut-include-pid-header'];
59-
let clearcutForceFlushIntervalMs: number|undefined;
59+
let clearcutForceFlushIntervalMs: number | undefined;
6060
if (values['clearcut-force-flush-interval-ms']) {
6161
const parsed = parseInt(values['clearcut-force-flush-interval-ms'], 10);
6262
if (!isNaN(parsed)) {

tests/e2e/telemetry.test.ts

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type {AddressInfo} from 'node:net';
1111
import path from 'node:path';
1212
import {describe, it} from 'node:test';
1313

14-
import type { ChromeDevToolsMcpExtension } from '../../src/telemetry/types';
14+
import type {ChromeDevToolsMcpExtension} from '../../src/telemetry/types';
1515

1616
const SERVER_PATH = path.resolve('build/src/main.js');
1717

@@ -20,7 +20,9 @@ interface MockServerContext {
2020
port: number;
2121
events: ChromeDevToolsMcpExtension[];
2222
watchdogPid?: number;
23-
waitForEvent: (predicate: (event: ChromeDevToolsMcpExtension) => boolean) => Promise<ChromeDevToolsMcpExtension>;
23+
waitForEvent: (
24+
predicate: (event: ChromeDevToolsMcpExtension) => boolean,
25+
) => Promise<ChromeDevToolsMcpExtension>;
2426
}
2527

2628
async function startMockServer(): Promise<MockServerContext> {
@@ -49,17 +51,21 @@ async function startMockServer(): Promise<MockServerContext> {
4951
if (parsed.log_event) {
5052
for (const logEvent of parsed.log_event) {
5153
if (logEvent.source_extension_json) {
52-
const ext = JSON.parse(logEvent.source_extension_json) as ChromeDevToolsMcpExtension;
54+
const ext = JSON.parse(
55+
logEvent.source_extension_json,
56+
) as ChromeDevToolsMcpExtension;
5357
events.push(ext);
54-
58+
5559
// Check if any waiters are satisfied
56-
waitingResolvers = waitingResolvers.filter(({predicate, resolve}) => {
57-
if (predicate(ext)) {
58-
resolve(ext);
59-
return false;
60-
}
61-
return true;
62-
});
60+
waitingResolvers = waitingResolvers.filter(
61+
({predicate, resolve}) => {
62+
if (predicate(ext)) {
63+
resolve(ext);
64+
return false;
65+
}
66+
return true;
67+
},
68+
);
6369
}
6470
}
6571
}
@@ -84,8 +90,10 @@ async function startMockServer(): Promise<MockServerContext> {
8490
server,
8591
port: address.port,
8692
events,
87-
get watchdogPid() { return watchdogPid; },
88-
waitForEvent: (predicate) => {
93+
get watchdogPid() {
94+
return watchdogPid;
95+
},
96+
waitForEvent: predicate => {
8997
const existing = events.find(predicate);
9098
if (existing) {
9199
return Promise.resolve(existing);
@@ -181,24 +189,38 @@ describe('Telemetry E2E', () => {
181189

182190
const startEvent = await Promise.race([
183191
mockContext.waitForEvent(e => e.server_start !== undefined),
184-
new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout waiting for server_start')), 10000))
192+
new Promise((_, reject) =>
193+
setTimeout(
194+
() => reject(new Error('Timeout waiting for server_start')),
195+
10000,
196+
),
197+
),
185198
]);
186199
assert.ok(startEvent, 'server_start event not received');
187200

188201
// Now that we received an event, we should have the Watchdog PID
189202
const watchdogPid = mockContext.watchdogPid;
190203
assert.ok(watchdogPid, 'Watchdog PID not captured from headers');
191-
204+
192205
// Assert Watchdog is actually running
193-
assert.strictEqual(isProcessAlive(watchdogPid), true, 'Watchdog process should be running');
206+
assert.strictEqual(
207+
isProcessAlive(watchdogPid),
208+
true,
209+
'Watchdog process should be running',
210+
);
194211

195212
// Trigger shutdown
196213
killFn(ctx);
197214

198215
// Verify shutdown event
199216
const shutdownEvent = await Promise.race([
200217
mockContext.waitForEvent(e => e.server_shutdown !== undefined),
201-
new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout waiting for server_shutdown')), 10000))
218+
new Promise((_, reject) =>
219+
setTimeout(
220+
() => reject(new Error('Timeout waiting for server_shutdown')),
221+
10000,
222+
),
223+
),
202224
]);
203225
assert.ok(shutdownEvent, 'server_shutdown event not received');
204226

tests/telemetry/watchdog/clearcut-sender.test.ts

Lines changed: 52 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ describe('ClearcutSender', () => {
9696
sender.enqueueEvent({
9797
tool_invocation: {tool_name: 'test', success: true, latency_ms: 100},
9898
});
99-
99+
100100
await clock.tickAsync(FLUSH_INTERVAL_MS);
101101
sender.stopForTesting();
102102

@@ -237,10 +237,12 @@ describe('ClearcutSender', () => {
237237
tool_invocation: {tool_name: 'initial', success: true, latency_ms: 100},
238238
});
239239
let resolveRequest: (value: Response) => void;
240-
241-
fetchStub.onFirstCall().returns(new Promise<Response>(resolve => {
242-
resolveRequest = resolve;
243-
}));
240+
241+
fetchStub.onFirstCall().returns(
242+
new Promise<Response>(resolve => {
243+
resolveRequest = resolve;
244+
}),
245+
);
244246

245247
clock.tick(FLUSH_INTERVAL_MS);
246248

@@ -270,21 +272,27 @@ describe('ClearcutSender', () => {
270272
forceFlushIntervalMs: FLUSH_INTERVAL_MS,
271273
});
272274
sender.enqueueEvent({
273-
tool_invocation: {tool_name: 'test-event', success: true, latency_ms: 100},
275+
tool_invocation: {
276+
tool_name: 'test-event',
277+
success: true,
278+
latency_ms: 100,
279+
},
274280
});
275-
281+
276282
let resolveFirstRequest: (value: Response) => void;
277-
fetchStub.onFirstCall().returns(new Promise<Response>(resolve => {
278-
resolveFirstRequest = resolve;
279-
}));
283+
fetchStub.onFirstCall().returns(
284+
new Promise<Response>(resolve => {
285+
resolveFirstRequest = resolve;
286+
}),
287+
);
280288

281289
clock.tick(FLUSH_INTERVAL_MS);
282290

283291
const shutdownPromise = sender.sendShutdownEvent();
284292

285293
resolveFirstRequest!(new Response(JSON.stringify({}), {status: 200}));
286294
await shutdownPromise;
287-
295+
288296
assert.strictEqual(fetchStub.callCount, 2);
289297
const firstBody = JSON.parse(fetchStub.args[0][1].body) as LogRequest;
290298
const secondBody = JSON.parse(fetchStub.args[1][1].body) as LogRequest;
@@ -308,7 +316,7 @@ describe('ClearcutSender', () => {
308316
secondEvents[0].server_shutdown,
309317
'Shutdown request should contain server_shutdown',
310318
);
311-
319+
312320
sender.stopForTesting();
313321
});
314322

@@ -327,11 +335,15 @@ describe('ClearcutSender', () => {
327335
const firstCallBody = JSON.parse(
328336
fetchStub.firstCall.args[1].body,
329337
) as LogRequest;
330-
const firstEvent = JSON.parse(firstCallBody.log_event[0].source_extension_json);
338+
const firstEvent = JSON.parse(
339+
firstCallBody.log_event[0].source_extension_json,
340+
);
331341
const firstSessionId = firstEvent.session_id;
332342

333343
const SESSION_ROTATION_INTERVAL_MS = 24 * 60 * 60 * 1000;
334-
await clock.tickAsync(SESSION_ROTATION_INTERVAL_MS - FLUSH_INTERVAL_MS + 1000);
344+
await clock.tickAsync(
345+
SESSION_ROTATION_INTERVAL_MS - FLUSH_INTERVAL_MS + 1000,
346+
);
335347

336348
sender.enqueueEvent({
337349
tool_invocation: {tool_name: 'test2', success: true, latency_ms: 10},
@@ -341,7 +353,9 @@ describe('ClearcutSender', () => {
341353
const secondCallBody = JSON.parse(
342354
fetchStub.secondCall.args[1].body,
343355
) as LogRequest;
344-
const secondEvent = JSON.parse(secondCallBody.log_event[0].source_extension_json);
356+
const secondEvent = JSON.parse(
357+
secondCallBody.log_event[0].source_extension_json,
358+
);
345359
const secondSessionId = secondEvent.session_id;
346360

347361
assert.notStrictEqual(firstSessionId, secondSessionId);
@@ -356,9 +370,14 @@ describe('ClearcutSender', () => {
356370
forceFlushIntervalMs: FLUSH_INTERVAL_MS,
357371
});
358372

359-
fetchStub.resolves(new Response(JSON.stringify({
360-
next_request_wait_millis: 45000,
361-
}), {status: 200}));
373+
fetchStub.resolves(
374+
new Response(
375+
JSON.stringify({
376+
next_request_wait_millis: 45000,
377+
}),
378+
{status: 200},
379+
),
380+
);
362381

363382
sender.enqueueEvent({});
364383
await clock.tickAsync(FLUSH_INTERVAL_MS);
@@ -368,7 +387,11 @@ describe('ClearcutSender', () => {
368387
sender.enqueueEvent({});
369388

370389
await clock.tickAsync(44000);
371-
assert.strictEqual(fetchStub.callCount, 0, 'Should not flush before wait time');
390+
assert.strictEqual(
391+
fetchStub.callCount,
392+
0,
393+
'Should not flush before wait time',
394+
);
372395

373396
await clock.tickAsync(1000);
374397
assert.strictEqual(fetchStub.callCount, 1, 'Should flush after wait time');
@@ -398,7 +421,11 @@ describe('ClearcutSender', () => {
398421
await clock.tickAsync(REQUEST_TIMEOUT_MS);
399422

400423
assert.ok(fetchSignal, 'Fetch should have been called with a signal');
401-
assert.strictEqual(fetchSignal.aborted, true, 'Signal should be aborted after timeout');
424+
assert.strictEqual(
425+
fetchSignal.aborted,
426+
true,
427+
'Signal should be aborted after timeout',
428+
);
402429

403430
sender.stopForTesting();
404431
});
@@ -409,9 +436,11 @@ describe('ClearcutSender', () => {
409436
osType: OsType.OS_TYPE_MACOS,
410437
forceFlushIntervalMs: FLUSH_INTERVAL_MS,
411438
});
412-
fetchStub.returns(new Promise(() => {
413-
// Hangs forever
414-
}));
439+
fetchStub.returns(
440+
new Promise(() => {
441+
// Hangs forever
442+
}),
443+
);
415444

416445
const shutdownPromise = sender.sendShutdownEvent();
417446

0 commit comments

Comments
 (0)