mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-02-01 05:49:54 +00:00
* Litegraph: canvas.pointer Clear @ts-expect-error Fix exception thrown on slot double-click Long-standing bug but has no real impact in prod - just logs an error. Required for new connecting_link features. Add settings: CanvasPointer options Update litegraph 0.8.28 Fix regression in snap to grid render Fix snap to grid marker always on Update snap to grid to use Positionable API Fix test clicks registering as double-click Improve test precision Current test proves it has changed to something smaller. New test proves it is exactly what was specified. Will need refinement when a limit is put on latent width. Fix test expects collapse node to select node Remove redundant code Resolved by CanvasPointer Fix flaky test - ContextMenu Fix settings group * Update litegraph * Remove snapToGrid extension * Update test expectations [skip ci] --------- Co-authored-by: huchenlei <huchenlei@proton.me> Co-authored-by: github-actions <github-actions@github.com>
109 lines
3.4 KiB
TypeScript
109 lines
3.4 KiB
TypeScript
import { expect } from '@playwright/test'
|
|
import { comfyPageFixture as test } from './fixtures/ComfyPage'
|
|
|
|
test.describe('Copy Paste', () => {
|
|
test('Can copy and paste node', async ({ comfyPage }) => {
|
|
await comfyPage.clickEmptyLatentNode()
|
|
await comfyPage.page.mouse.move(10, 10)
|
|
await comfyPage.ctrlC()
|
|
await comfyPage.ctrlV()
|
|
await expect(comfyPage.canvas).toHaveScreenshot('copied-node.png')
|
|
})
|
|
|
|
test('Can copy and paste text', async ({ comfyPage }) => {
|
|
const textBox = comfyPage.widgetTextBox
|
|
await textBox.click()
|
|
const originalString = await textBox.inputValue()
|
|
await textBox.selectText()
|
|
await comfyPage.ctrlC(null)
|
|
await comfyPage.ctrlV(null)
|
|
await comfyPage.ctrlV(null)
|
|
const resultString = await textBox.inputValue()
|
|
expect(resultString).toBe(originalString + originalString)
|
|
})
|
|
|
|
test('Can copy and paste widget value', async ({ comfyPage }) => {
|
|
// Copy width value (512) from empty latent node to KSampler's seed.
|
|
// KSampler's seed
|
|
await comfyPage.canvas.click({
|
|
position: {
|
|
x: 1005,
|
|
y: 281
|
|
}
|
|
})
|
|
await comfyPage.ctrlC(null)
|
|
// Empty latent node's width
|
|
await comfyPage.canvas.click({
|
|
position: {
|
|
x: 718,
|
|
y: 643
|
|
}
|
|
})
|
|
await comfyPage.ctrlV(null)
|
|
await comfyPage.page.keyboard.press('Enter')
|
|
await expect(comfyPage.canvas).toHaveScreenshot('copied-widget-value.png')
|
|
})
|
|
|
|
/**
|
|
* https://github.com/Comfy-Org/ComfyUI_frontend/issues/98
|
|
*/
|
|
test('Paste in text area with node previously copied', async ({
|
|
comfyPage
|
|
}) => {
|
|
await comfyPage.clickEmptyLatentNode()
|
|
await comfyPage.ctrlC(null)
|
|
const textBox = comfyPage.widgetTextBox
|
|
await textBox.click()
|
|
await textBox.inputValue()
|
|
await textBox.selectText()
|
|
await comfyPage.ctrlC(null)
|
|
await comfyPage.ctrlV(null)
|
|
await comfyPage.ctrlV(null)
|
|
await expect(comfyPage.canvas).toHaveScreenshot(
|
|
'paste-in-text-area-with-node-previously-copied.png'
|
|
)
|
|
})
|
|
|
|
test('Copy text area does not copy node', async ({ comfyPage }) => {
|
|
const textBox = comfyPage.widgetTextBox
|
|
await textBox.click()
|
|
await textBox.inputValue()
|
|
await textBox.selectText()
|
|
await comfyPage.ctrlC(null)
|
|
// Unfocus textbox.
|
|
await comfyPage.page.mouse.click(10, 10)
|
|
await comfyPage.ctrlV(null)
|
|
await expect(comfyPage.canvas).toHaveScreenshot('no-node-copied.png')
|
|
})
|
|
|
|
test('Copy node by dragging + alt', async ({ comfyPage }) => {
|
|
// TextEncodeNode1
|
|
await comfyPage.page.mouse.move(618, 191)
|
|
await comfyPage.page.keyboard.down('Alt')
|
|
await comfyPage.page.mouse.down()
|
|
await comfyPage.page.mouse.move(100, 100)
|
|
await comfyPage.page.mouse.up()
|
|
await comfyPage.page.keyboard.up('Alt')
|
|
await expect(comfyPage.canvas).toHaveScreenshot('drag-copy-copied-node.png')
|
|
})
|
|
|
|
test('Can undo paste multiple nodes as single action', async ({
|
|
comfyPage
|
|
}) => {
|
|
const initialCount = await comfyPage.getGraphNodesCount()
|
|
expect(initialCount).toBeGreaterThan(1)
|
|
await comfyPage.canvas.click()
|
|
await comfyPage.ctrlA()
|
|
await comfyPage.page.mouse.move(10, 10)
|
|
await comfyPage.ctrlC()
|
|
await comfyPage.ctrlV()
|
|
|
|
const pasteCount = await comfyPage.getGraphNodesCount()
|
|
expect(pasteCount).toBe(initialCount * 2)
|
|
|
|
await comfyPage.ctrlZ()
|
|
const undoCount = await comfyPage.getGraphNodesCount()
|
|
expect(undoCount).toBe(initialCount)
|
|
})
|
|
})
|