mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-05-11 16:30:57 +00:00
## Summary Reuse the actionbar queue-button page object in the queue mode E2E tests so dropdown selectors live in one helper. ## Changes - **What**: Adds queue mode menu/item helpers to `ComfyActionbar.queueButton` and updates `queueButtonModes.spec.ts` to use them. - **Dependencies**: None. ## Review Focus This is stacked on #11209 and should be reviewed as a test-infra cleanup only; the behavior covered by the spec is unchanged. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-11927-test-reuse-queue-button-page-object-in-e2e-3566d73d365081918d59c2d587c4c94a) by [Unito](https://www.unito.io)
64 lines
2.0 KiB
TypeScript
64 lines
2.0 KiB
TypeScript
import { expect } from '@playwright/test'
|
|
|
|
import type { PromptResponse } from '@/schemas/apiSchema'
|
|
|
|
import { comfyPageFixture as test } from '@e2e/fixtures/ComfyPage'
|
|
|
|
const queueModeLabels = ['Run', 'Run (On Change)', 'Run (Instant)']
|
|
const runOnChangeLabel = queueModeLabels[1]
|
|
|
|
test.describe('Queue button modes', { tag: '@ui' }, () => {
|
|
test('Run button is visible in topbar', async ({ comfyPage }) => {
|
|
await expect(comfyPage.actionbar.queueButton.primaryButton).toBeVisible()
|
|
})
|
|
|
|
test('Queue mode trigger menu is visible', async ({ comfyPage }) => {
|
|
await expect(comfyPage.actionbar.queueButton.dropdownButton).toBeVisible()
|
|
})
|
|
|
|
test('Clicking queue mode trigger opens mode menu', async ({ comfyPage }) => {
|
|
const options = await comfyPage.actionbar.queueButton.openOptions()
|
|
|
|
await expect(options.menu).toBeVisible()
|
|
})
|
|
|
|
test('Queue mode menu shows available modes', async ({ comfyPage }) => {
|
|
const options = await comfyPage.actionbar.queueButton.openOptions()
|
|
|
|
await expect(options.menu).toBeVisible()
|
|
await expect(options.modeItems).toHaveText(queueModeLabels)
|
|
})
|
|
|
|
test('Selecting a non-default mode updates the Run button label', async ({
|
|
comfyPage
|
|
}) => {
|
|
const queueButton = comfyPage.actionbar.queueButton
|
|
const options = await queueButton.openOptions()
|
|
|
|
await expect(options.menu).toBeVisible()
|
|
await options.selectMode(runOnChangeLabel)
|
|
|
|
await expect(queueButton.primaryButton).toContainText(runOnChangeLabel)
|
|
})
|
|
|
|
test('Run button sends prompt when clicked', async ({ comfyPage }) => {
|
|
let promptQueued = false
|
|
const mockResponse: PromptResponse = {
|
|
prompt_id: 'test-id',
|
|
node_errors: {},
|
|
error: ''
|
|
}
|
|
await comfyPage.page.route('**/api/prompt', async (route) => {
|
|
promptQueued = true
|
|
await route.fulfill({
|
|
status: 200,
|
|
body: JSON.stringify(mockResponse)
|
|
})
|
|
})
|
|
|
|
await comfyPage.actionbar.queueButton.primaryButton.click()
|
|
|
|
await expect.poll(() => promptQueued).toBe(true)
|
|
})
|
|
})
|