Update tests with precise node positions / sizes (#1408)

* Update tests with precise node positions / sizes

* Fix test flakiness - missing await

* Fix test failures - async not awaited

* Update action

* Update test expectations [skip ci]

---------

Co-authored-by: huchenlei <huchenlei@proton.me>
Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
filtered
2024-11-04 02:42:54 +11:00
committed by GitHub
parent 394df49208
commit 27bacc36d4
9 changed files with 37 additions and 19 deletions

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
if: github.event.label.name == 'New Browser Test Expectations'
steps:
- uses: Comfy-Org/ComfyUI_frontend_setup_action@v1
- uses: Comfy-Org/ComfyUI_frontend_setup_action@v2.1
- name: Install Playwright Browsers
run: npx playwright install chromium --with-deps
working-directory: ComfyUI_frontend

View File

@@ -650,10 +650,14 @@ export class ComfyPage {
x: nodePos.x + nodeSize.width * ratioX,
y: nodePos.y + nodeSize.height * ratioY
}
await this.dragAndDrop(bottomRight, target)
// -1 to be inside the node. -2 because nodes currently get an arbitrary +1 to width.
await this.dragAndDrop(
{ x: bottomRight.x - 2, y: bottomRight.y - 1 },
target
)
await this.nextFrame()
if (revertAfter) {
await this.dragAndDrop(target, bottomRight)
await this.dragAndDrop({ x: target.x - 2, y: target.y - 1 }, bottomRight)
await this.nextFrame()
}
}
@@ -664,14 +668,20 @@ export class ComfyPage {
revertAfter: boolean = false
) {
const ksamplerPos = {
x: 864,
y: 157
x: 863,
y: 156
}
const ksamplerSize = {
width: 315,
height: 292
}
this.resizeNode(ksamplerPos, ksamplerSize, percentX, percentY, revertAfter)
return this.resizeNode(
ksamplerPos,
ksamplerSize,
percentX,
percentY,
revertAfter
)
}
async resizeLoadCheckpointNode(
@@ -680,14 +690,14 @@ export class ComfyPage {
revertAfter: boolean = false
) {
const loadCheckpointPos = {
x: 25,
y: 440
x: 26,
y: 444
}
const loadCheckpointSize = {
width: 320,
height: 120
width: 315,
height: 127
}
this.resizeNode(
return this.resizeNode(
loadCheckpointPos,
loadCheckpointSize,
percentX,
@@ -702,14 +712,14 @@ export class ComfyPage {
revertAfter: boolean = false
) {
const emptyLatentPos = {
x: 475,
y: 580
x: 473,
y: 579
}
const emptyLatentSize = {
width: 303,
height: 132
width: 315,
height: 136
}
this.resizeNode(
return this.resizeNode(
emptyLatentPos,
emptyLatentSize,
percentX,

View File

@@ -139,7 +139,9 @@ test.describe('Group Node', () => {
}) => {
await comfyPage.loadWorkflow('legacy_group_node')
expect(await comfyPage.getGraphNodesCount()).toBe(1)
expect(comfyPage.page.locator('.comfy-missing-nodes')).not.toBeVisible()
await expect(
comfyPage.page.locator('.comfy-missing-nodes')
).not.toBeVisible()
})
test.describe('Copy and paste', () => {

View File

@@ -27,10 +27,14 @@ test.describe('Optional input', () => {
test('Only optional inputs', async ({ comfyPage }) => {
await comfyPage.loadWorkflow('only_optional_inputs')
expect(await comfyPage.getGraphNodesCount()).toBe(1)
expect(comfyPage.page.locator('.comfy-missing-nodes')).not.toBeVisible()
await expect(
comfyPage.page.locator('.comfy-missing-nodes')
).not.toBeVisible()
// If the node's multiline text widget is visible, then it was loaded successfully
expect(comfyPage.page.locator('.comfy-multiline-input')).toHaveCount(1)
await expect(comfyPage.page.locator('.comfy-multiline-input')).toHaveCount(
1
)
})
test('Old workflow with converted input', async ({ comfyPage }) => {
await comfyPage.loadWorkflow('old_workflow_converted_input')

View File

@@ -138,6 +138,8 @@ test.describe('Release context menu', () => {
test('Can trigger on link release', async ({ comfyPage }) => {
await comfyPage.disconnectEdge()
await comfyPage.page.mouse.move(10, 10)
await comfyPage.nextFrame()
await expect(comfyPage.canvas).toHaveScreenshot(
'link-release-context-menu.png'
)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 96 KiB