Files
ComfyUI_frontend/browser_tests/fixtures/helpers/CommandHelper.ts
Alexander Brown d605b5da67 fix: browser_tests Phase 3 - type annotations and final fixes
- Add 'this: ExpectMatcherState' to ComfyPage.ts makeMatcher function
- Add type annotations to parameters (slot, comfyPage, w, inputs)
- Add 'as any' for ExtensionManager dynamic properties (workflow, focusMode, colorPalette, queueSettings)
- Fix keybindings import paths to use '/types' suffix
- Cast Subgraph types and CanvasPointerEvent in SubgraphHelper
- Fix test setting IDs with 'as any' in useSettingSearch, extensionAPI specs
- Fix AppReadiness, colorPalette, featureFlags type issues
- Replace removed ComfyPage properties with DefaultGraphPositions
- Remove unused _canvas parameter from ClipboardHelper
- Add non-null assertions for app, vaeInput, convertedInput

Reduces browser_tests typecheck errors from 72 to 0.

Amp-Thread-ID: https://ampcode.com/threads/T-019c17a3-2482-7115-8e42-ba0bbb0c9cda
Co-authored-by: Amp <amp@ampcode.com>
2026-01-31 21:58:03 -08:00

69 lines
1.8 KiB
TypeScript

import type { Page } from '@playwright/test'
import type { KeyCombo } from '../../../src/platform/keybindings/types'
export class CommandHelper {
constructor(private readonly page: Page) {}
async executeCommand(commandId: string): Promise<void> {
await this.page.evaluate((id: string) => {
return window.app!.extensionManager.command.execute(id)
}, commandId)
}
async registerCommand(
commandId: string,
command: (() => void) | (() => Promise<void>)
): Promise<void> {
await this.page.evaluate(
({ commandId, commandStr }) => {
const app = window.app!
const randomSuffix = Math.random().toString(36).substring(2, 8)
const extensionName = `TestExtension_${randomSuffix}`
app.registerExtension({
name: extensionName,
commands: [
{
id: commandId,
function: eval(commandStr)
}
]
})
},
{ commandId, commandStr: command.toString() }
)
}
async registerKeybinding(
keyCombo: KeyCombo,
command: () => void
): Promise<void> {
await this.page.evaluate(
({ keyCombo, commandStr }) => {
const app = window.app!
const randomSuffix = Math.random().toString(36).substring(2, 8)
const extensionName = `TestExtension_${randomSuffix}`
const commandId = `TestCommand_${randomSuffix}`
app.registerExtension({
name: extensionName,
keybindings: [
{
combo: keyCombo,
commandId: commandId
}
],
commands: [
{
id: commandId,
function: eval(commandStr)
}
]
})
},
{ keyCombo, commandStr: command.toString() }
)
}
}