Re-enable multiple-undo test (#1483)

* Re-enable multiple-undo test

* nit
This commit is contained in:
Chenlei Hu
2024-11-10 10:57:15 -05:00
committed by GitHub
parent 893fd498df
commit 6c6c356c78

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')
// Wait for the workflow to be saved.
await comfyPage.page.waitForTimeout(10)
expect(await isModified()).toBe(false)
// 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)
})
})