mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-20 14:30:41 +00:00
## Summary Adds tests that simulate the execution flow and output feed ## Changes - **What**: - Add ExecutionHelper for mocking network activity - Refactor ws fixture to use Playwright websocket helper instead of patching window - ## Review Focus <!-- Critical design decisions or edge cases that need attention --> <!-- If this PR fixes an issue, uncomment and update the line below --> <!-- Fixes #ISSUE_NUMBER --> ## Screenshots (if applicable) <!-- Add screenshots or video recording to help explain your changes --> ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-10801-test-App-mode-Execution-tests-3356d73d365081e4acf0c34378600031) by [Unito](https://www.unito.io)
32 lines
791 B
TypeScript
32 lines
791 B
TypeScript
import { test as base } from '@playwright/test'
|
|
import type { WebSocketRoute } from '@playwright/test'
|
|
|
|
export const webSocketFixture = base.extend<{
|
|
getWebSocket: () => Promise<WebSocketRoute>
|
|
}>({
|
|
getWebSocket: [
|
|
async ({ context }, use) => {
|
|
let latest: WebSocketRoute | undefined
|
|
let resolve: ((ws: WebSocketRoute) => void) | undefined
|
|
|
|
await context.routeWebSocket(/\/ws/, (ws) => {
|
|
const server = ws.connectToServer()
|
|
server.onMessage((message) => {
|
|
ws.send(message)
|
|
})
|
|
|
|
latest = ws
|
|
resolve?.(ws)
|
|
})
|
|
|
|
await use(() => {
|
|
if (latest) return Promise.resolve(latest)
|
|
return new Promise<WebSocketRoute>((r) => {
|
|
resolve = r
|
|
})
|
|
})
|
|
},
|
|
{ auto: true }
|
|
]
|
|
})
|