Reland "Re-enable multiple-undo test" (#1499)

* Revert "Revert "Re-enable multiple-undo test (#1483)" (#1498)"

This reverts commit 5f1a9659e9.

* nit
This commit is contained in:
Chenlei Hu
2024-11-10 12:59:19 -05:00
committed by GitHub
parent 5f1a9659e9
commit 58ad01adfe

View File

@@ -21,9 +21,7 @@ test.describe('Change Tracker', () => {
await comfyPage.setSetting('Comfy.UseNewMenu', 'Top')
})
// Flaky https://github.com/Comfy-Org/ComfyUI_frontend/pull/1481
// The collapse can be recognized as several changes.
test.skip('Can undo multiple operations', async ({ comfyPage }) => {
test('Can undo multiple operations', async ({ comfyPage }) => {
function isModified() {
return comfyPage.page.evaluate(async () => {
return window['app'].extensionManager.workflow.activeWorkflow
@@ -31,25 +29,59 @@ test.describe('Change Tracker', () => {
})
}
function getUndoQueueSize() {
return comfyPage.page.evaluate(() => {
const workflow =
window['app'].extensionManager.workflow.activeWorkflow
return workflow.changeTracker.undoQueue.length
})
}
function getRedoQueueSize() {
return comfyPage.page.evaluate(() => {
const workflow =
window['app'].extensionManager.workflow.activeWorkflow
return workflow.changeTracker.redoQueue.length
})
}
expect(await getUndoQueueSize()).toBe(0)
expect(await getRedoQueueSize()).toBe(0)
await comfyPage.menu.topbar.saveWorkflow('undo-redo-test')
expect(await isModified()).toBe(false)
await comfyPage.page.waitForFunction(
() => !window['app'].extensionManager.workflow.activeWorkflow.isModified
)
// TODO(huchenlei): Investigate why saving the workflow is causing the
// undo queue to be triggered.
expect(await getUndoQueueSize()).toBe(1)
expect(await getRedoQueueSize()).toBe(0)
const node = (await comfyPage.getFirstNodeRef())!
await node.click('collapse')
await expect(node).toBeCollapsed()
expect(await isModified()).toBe(true)
expect(await getUndoQueueSize()).toBe(2)
expect(await getRedoQueueSize()).toBe(0)
await comfyPage.ctrlB()
await expect(node).toBeBypassed()
expect(await isModified()).toBe(true)
expect(await getUndoQueueSize()).toBe(3)
expect(await getRedoQueueSize()).toBe(0)
await comfyPage.ctrlZ()
await expect(node).not.toBeBypassed()
expect(await isModified()).toBe(true)
expect(await getUndoQueueSize()).toBe(2)
expect(await getRedoQueueSize()).toBe(1)
await comfyPage.ctrlZ()
await expect(node).not.toBeCollapsed()
expect(await isModified()).toBe(false)
// TODO(huchenlei): Following assertion is flaky.
// Seems like ctrlZ() is not triggered correctly.
// await comfyPage.ctrlZ()
// await expect(node).not.toBeCollapsed()
// expect(await isModified()).toBe(false)
// expect(await getUndoQueueSize()).toBe(1)
// expect(await getRedoQueueSize()).toBe(2)
})
})