mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-01 22:09:55 +00:00
* Fix links being lost after manage group node * Change to use groupnodebuilder * Make test more reliable
93 lines
3.4 KiB
TypeScript
93 lines
3.4 KiB
TypeScript
import { expect } from '@playwright/test'
|
|
import { comfyPageFixture as test } from './ComfyPage'
|
|
|
|
test.describe('Group Node', () => {
|
|
test.afterEach(async ({ comfyPage }) => {
|
|
await comfyPage.setSetting('Comfy.UseNewMenu', 'Disabled')
|
|
})
|
|
|
|
test('Is added to node library sidebar', async ({ comfyPage }) => {
|
|
await comfyPage.setSetting('Comfy.UseNewMenu', 'Top')
|
|
const groupNodeName = 'DefautWorkflowGroupNode'
|
|
await comfyPage.convertAllNodesToGroupNode(groupNodeName)
|
|
const tab = comfyPage.menu.nodeLibraryTab
|
|
await tab.open()
|
|
expect(await tab.getFolder('group nodes').count()).toBe(1)
|
|
})
|
|
|
|
test('Can be added to canvas using node library sidebar', async ({
|
|
comfyPage
|
|
}) => {
|
|
await comfyPage.setSetting('Comfy.UseNewMenu', 'Top')
|
|
const groupNodeName = 'DefautWorkflowGroupNode'
|
|
await comfyPage.convertAllNodesToGroupNode(groupNodeName)
|
|
const initialNodeCount = await comfyPage.getGraphNodesCount()
|
|
|
|
// Add group node from node library sidebar
|
|
const tab = comfyPage.menu.nodeLibraryTab
|
|
await tab.open()
|
|
await tab.getFolder('group nodes').click()
|
|
await tab.getFolder('workflow').click()
|
|
await tab.getFolder('workflow').last().click()
|
|
await tab.getNode(groupNodeName).click()
|
|
|
|
// Verify the node is added to the canvas
|
|
expect(await comfyPage.getGraphNodesCount()).toBe(initialNodeCount + 1)
|
|
})
|
|
|
|
test('Can be added to canvas using search', async ({ comfyPage }) => {
|
|
const groupNodeName = 'DefautWorkflowGroupNode'
|
|
await comfyPage.convertAllNodesToGroupNode(groupNodeName)
|
|
await comfyPage.doubleClickCanvas()
|
|
await comfyPage.nextFrame()
|
|
await comfyPage.searchBox.fillAndSelectFirstNode(groupNodeName)
|
|
await expect(comfyPage.canvas).toHaveScreenshot(
|
|
'group-node-copy-added-from-search.png'
|
|
)
|
|
})
|
|
|
|
test('Displays tooltip on title hover', async ({ comfyPage }) => {
|
|
await comfyPage.convertAllNodesToGroupNode('Group Node')
|
|
await comfyPage.page.mouse.move(47, 173)
|
|
const tooltipTimeout = 500
|
|
await comfyPage.page.waitForTimeout(tooltipTimeout + 16)
|
|
await expect(comfyPage.page.locator('.node-tooltip')).toBeVisible()
|
|
})
|
|
|
|
test('Reconnects inputs after configuration changed via manage dialog save', async ({
|
|
comfyPage
|
|
}) => {
|
|
const expectSingleNode = async (type: string) => {
|
|
const nodes = await comfyPage.getNodeRefsByType(type)
|
|
expect(nodes).toHaveLength(1)
|
|
return nodes[0]
|
|
}
|
|
const latent = await expectSingleNode('EmptyLatentImage')
|
|
const sampler = await expectSingleNode('KSampler')
|
|
// Remove existing link
|
|
const samplerInput = await sampler.getInput(0)
|
|
await samplerInput.removeLinks()
|
|
// Group latent + sampler
|
|
await latent.click('title', {
|
|
modifiers: ['Shift']
|
|
})
|
|
await sampler.click('title', {
|
|
modifiers: ['Shift']
|
|
})
|
|
const groupNode = await sampler.convertToGroupNode()
|
|
// Connect node to group
|
|
const ckpt = await expectSingleNode('CheckpointLoaderSimple')
|
|
const input = await ckpt.connectOutput(0, groupNode, 0)
|
|
expect(await input.getLinkCount()).toBe(1)
|
|
// Modify the group node via manage dialog
|
|
const manage = await groupNode.manageGroupNode()
|
|
await manage.selectNode('KSampler')
|
|
await manage.changeTab('Inputs')
|
|
await manage.setLabel('model', 'test')
|
|
await manage.save()
|
|
await manage.close()
|
|
// Ensure the link is still present
|
|
expect(await input.getLinkCount()).toBe(1)
|
|
})
|
|
})
|