mirror of
https://github.com/enso-org/enso.git
synced 2024-12-22 10:11:37 +03:00
4bf79776c5
Fixes #6250 With this change, I've also slightly refactored the graph editor component by grouping related functionality into neat block and moving already loosely coupled groups to separate files. Further work will be needed to simplify it, but it is a good first step. https://github.com/enso-org/enso/assets/919491/fedce111-ea79-463f-a543-da3ecce28bf5
52 lines
2.2 KiB
TypeScript
52 lines
2.2 KiB
TypeScript
import test from 'playwright/test'
|
|
import * as actions from './actions'
|
|
import { expect } from './customExpect'
|
|
import * as locate from './locate'
|
|
|
|
test('Adding new node', async ({ page }) => {
|
|
await actions.goToGraph(page)
|
|
|
|
const nodesCount = await locate.graphNode(page).count()
|
|
await locate.addNewNodeButton(page).click()
|
|
await expect(locate.componentBrowserInput(page)).toBeVisible()
|
|
await page.keyboard.insertText('foo')
|
|
await page.keyboard.press('Control+Enter')
|
|
await expect(locate.graphNode(page)).toHaveCount(nodesCount + 1)
|
|
await expect(locate.graphNode(page).last().locator('.WidgetToken')).toHaveText(['foo'])
|
|
const newNodeBBox = await locate.graphNode(page).last().boundingBox()
|
|
|
|
await page.keyboard.press('Control+Z')
|
|
await expect(locate.graphNode(page)).toHaveCount(nodesCount)
|
|
await expect(
|
|
locate.graphNode(page).locator('.WidgetToken').filter({ hasText: 'foo' }),
|
|
).toHaveCount(0)
|
|
|
|
await page.keyboard.press('Control+Shift+Z')
|
|
await expect(locate.graphNode(page)).toHaveCount(nodesCount + 1)
|
|
await expect(locate.graphNode(page).last().locator('.WidgetToken')).toHaveText(['foo'])
|
|
const restoredBox = await locate.graphNode(page).last().boundingBox()
|
|
await expect(restoredBox).toEqual(newNodeBBox)
|
|
})
|
|
|
|
test('Removing node', async ({ page }) => {
|
|
await actions.goToGraph(page)
|
|
|
|
const nodesCount = await locate.graphNode(page).count()
|
|
const deletedNode = locate.graphNodeByBinding(page, 'final')
|
|
const deletedNodeBBox = await deletedNode.boundingBox()
|
|
await deletedNode.click()
|
|
await page.keyboard.press('Delete')
|
|
await expect(locate.graphNode(page)).toHaveCount(nodesCount - 1)
|
|
|
|
await page.keyboard.press('Control+Z')
|
|
await expect(locate.graphNode(page)).toHaveCount(nodesCount)
|
|
await expect(deletedNode.locator('.WidgetToken')).toHaveText(['Main', '.', 'func1', 'prod'])
|
|
await expect(deletedNode.locator('.GraphNodeComment')).toHaveText('This node can be entered')
|
|
const restoredBBox = await deletedNode.boundingBox()
|
|
await expect(restoredBBox).toEqual(deletedNodeBBox)
|
|
|
|
await page.keyboard.press('Control+Shift+Z')
|
|
await expect(locate.graphNode(page)).toHaveCount(nodesCount - 1)
|
|
await expect(deletedNode).not.toBeVisible()
|
|
})
|