Fix searchbox trigger on non-always link release setting (#426)

* Fix searchbox trigger on non-always link release setting

* Add browsertest
This commit is contained in:
Chenlei Hu
2024-08-14 13:44:22 -04:00
committed by GitHub
parent a68f7c680b
commit fc1b0b3e53
3 changed files with 35 additions and 12 deletions

View File

@@ -170,6 +170,15 @@ export class ComfyPage {
await this.resetView()
}
async setSetting(settingId: string, settingValue: any) {
return await this.page.evaluate(
async ({ id, value }) => {
await window['app'].ui.settings.setSettingValueAsync(id, value)
},
{ id: settingId, value: settingValue }
)
}
async realod() {
await this.page.reload({ timeout: 15000 })
await this.setup()

View File

@@ -2,9 +2,23 @@ import { expect } from '@playwright/test'
import { comfyPageFixture as test } from './ComfyPage'
test.describe('Node search box', () => {
test('Can trigger on empty canvas double click', async ({ comfyPage }) => {
await comfyPage.doubleClickCanvas()
await expect(comfyPage.searchBox.input).toHaveCount(1)
test.beforeEach(async ({ comfyPage }) => {
await comfyPage.setSetting(
'Comfy.NodeSearchBoxImpl.LinkReleaseTrigger',
'always'
)
})
;['always', 'hold shift', 'NOT hold shift'].forEach((triggerMode) => {
test(`Can trigger on empty canvas double click (${triggerMode})`, async ({
comfyPage
}) => {
await comfyPage.setSetting(
'Comfy.NodeSearchBoxImpl.LinkReleaseTrigger',
triggerMode
)
await comfyPage.doubleClickCanvas()
await expect(comfyPage.searchBox.input).toHaveCount(1)
})
})
test('Can trigger on link release', async ({ comfyPage }) => {

View File

@@ -104,16 +104,16 @@ const linkReleaseTriggerMode = computed<LinkReleaseTriggerMode>(() => {
const canvasEventHandler = (e: LiteGraphCanvasEvent) => {
const shiftPressed = (e.detail.originalEvent as KeyboardEvent).shiftKey
if (
(linkReleaseTriggerMode.value === LinkReleaseTriggerMode.HOLD_SHIFT &&
!shiftPressed) ||
(linkReleaseTriggerMode.value === LinkReleaseTriggerMode.NOT_HOLD_SHIFT &&
shiftPressed)
) {
return
}
if (e.detail.subType === 'empty-release') {
if (
(linkReleaseTriggerMode.value === LinkReleaseTriggerMode.HOLD_SHIFT &&
!shiftPressed) ||
(linkReleaseTriggerMode.value === LinkReleaseTriggerMode.NOT_HOLD_SHIFT &&
shiftPressed)
) {
return
}
const context = e.detail.linkReleaseContext
if (context.links.length === 0) {
console.warn('Empty release with no links! This should never happen')