Commit Graph

5 Commits

Author SHA1 Message Date
robobun
0c79e5e0dd Fix race condition in BunFrontendDevServer HMR WebSocket tests (#23625)
## Summary

Fixes flaky tests in `test/cli/inspect/BunFrontendDevServer.test.ts` by
resolving a race condition where tests would miss the `clientConnected`
event.

## Problem

Two tests were failing intermittently (~30% failure rate):
- `should notify on clientNavigated events`
- `should notify on consoleLog events`

Both tests would timeout after 5000ms waiting for the `clientConnected`
event that never arrived.

## Root Cause

In `src/bake/DevServer/HmrSocket.zig:30-41`, when a WebSocket connection
opens, the `onOpen()` handler immediately sends the `clientConnected`
inspector event.

The flaky tests had this problematic sequence:
1. Create WebSocket with `await createHMRClient()`
2. Server's `onOpen()` fires instantly and emits `clientConnected` event
3. Test then calls
`session.waitForEvent("BunFrontendDevServer.clientConnected")`
4. **Race condition**: Event already sent, test waits forever and times
out

## Solution

Set up event listeners **before** creating the WebSocket connection,
matching the pattern from the working test "should receive
clientConnected and clientDisconnected events":

```typescript
// Set up listener FIRST
const connectedEventPromise = session.waitForEvent("BunFrontendDevServer.clientConnected");

// Then create WebSocket
const ws = await createHMRClient();

// Now await the event
const connectedEvent = await connectedEventPromise;
```

## Testing

Verified with 30 consecutive test runs:
- **Before fix**: ~30% failure rate
- **After fix**: 100% pass rate (30/30 passes)

Tested with both:
- Debug build: `bun bd test` 
- System bun v1.3.0: `bun test`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-13 16:26:56 -07:00
Jarred Sumner
e58df65a75 Bump WebKit (#19882) 2025-05-26 18:56:32 -07:00
Jarred Sumner
14b439a115 Fix formatters not running in CI + delete unnecessary files (#19433) 2025-05-08 23:22:16 -07:00
Jarred Sumner
7521e45b17 --console & console: true (#19427)
Co-authored-by: Zack Radisic <56137411+zackradisic@users.noreply.github.com>
2025-05-02 12:55:57 -07:00
Jarred Sumner
44c97fa591 Add WebKit Inspector support for Bun's Dev Server (#19320)
Co-authored-by: chloe caruso <git@paperclover.net>
Co-authored-by: Zack Radisic <56137411+zackradisic@users.noreply.github.com>
2025-04-29 18:34:26 -07:00