-
Notifications
You must be signed in to change notification settings - Fork 64
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
440b6fc
commit fcbdefc
Showing
4 changed files
with
218 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
import { | ||
ComfyPage, | ||
comfyPageFixture as test, | ||
comfyExpect as expect | ||
} from './ComfyPage' | ||
|
||
async function beforeChange(comfyPage: ComfyPage) { | ||
await comfyPage.page.evaluate(() => { | ||
window['app'].canvas.emitBeforeChange() | ||
}) | ||
} | ||
async function afterChange(comfyPage: ComfyPage) { | ||
await comfyPage.page.evaluate(() => { | ||
window['app'].canvas.emitAfterChange() | ||
}) | ||
} | ||
|
||
test.describe('Change Tracker', () => { | ||
test('Can group multiple change actions into a single transaction', async ({ | ||
comfyPage | ||
}) => { | ||
const node = (await comfyPage.getFirstNodeRef())! | ||
expect(node).toBeTruthy() | ||
await expect(node).not.toBeCollapsed() | ||
await expect(node).not.toBeBypassed() | ||
|
||
// Make changes outside set | ||
// Bypass + collapse node | ||
await node.click('collapse') | ||
await comfyPage.ctrlB() | ||
await expect(node).toBeCollapsed() | ||
await expect(node).toBeBypassed() | ||
|
||
// Undo, undo, ensure both changes undone | ||
await comfyPage.ctrlZ() | ||
await expect(node).not.toBeBypassed() | ||
await expect(node).toBeCollapsed() | ||
await comfyPage.ctrlZ() | ||
await expect(node).not.toBeBypassed() | ||
await expect(node).not.toBeCollapsed() | ||
|
||
// Run again, but within a change transaction | ||
beforeChange(comfyPage) | ||
|
||
await node.click('collapse') | ||
await comfyPage.ctrlB() | ||
await expect(node).toBeCollapsed() | ||
await expect(node).toBeBypassed() | ||
|
||
// End transaction | ||
afterChange(comfyPage) | ||
|
||
// Ensure undo reverts both changes | ||
await comfyPage.ctrlZ() | ||
await expect(node).not.toBeBypassed() | ||
await expect(node).not.toBeCollapsed() | ||
}) | ||
|
||
test('Can group multiple transaction calls into a single one', async ({ | ||
comfyPage | ||
}) => { | ||
const node = (await comfyPage.getFirstNodeRef())! | ||
const bypassAndPin = async () => { | ||
await beforeChange(comfyPage) | ||
await comfyPage.ctrlB() | ||
await expect(node).toBeBypassed() | ||
await comfyPage.page.keyboard.press('KeyP') | ||
await comfyPage.nextFrame() | ||
await expect(node).toBePinned() | ||
await afterChange(comfyPage) | ||
} | ||
|
||
const collapse = async () => { | ||
await beforeChange(comfyPage) | ||
await node.click('collapse', { moveMouseToEmptyArea: true }) | ||
await expect(node).toBeCollapsed() | ||
await afterChange(comfyPage) | ||
} | ||
|
||
const multipleChanges = async () => { | ||
await beforeChange(comfyPage) | ||
// Call other actions that uses begin/endChange | ||
await collapse() | ||
await bypassAndPin() | ||
await afterChange(comfyPage) | ||
} | ||
|
||
await multipleChanges() | ||
|
||
await comfyPage.ctrlZ() | ||
await expect(node).not.toBeBypassed() | ||
await expect(node).not.toBePinned() | ||
await expect(node).not.toBeCollapsed() | ||
|
||
await comfyPage.ctrlY() | ||
await expect(node).toBeBypassed() | ||
await expect(node).toBePinned() | ||
await expect(node).toBeCollapsed() | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters