mirror of
https://github.com/enso-org/enso.git
synced 2024-12-22 16:11:45 +03:00
c69ba4ee70
Fixes #9182 Now we are careful when to handle events - before or after updating intersected set. Added general E2E and detailed unit tests for selecting. Also discovered, that sometimes the test are running while nodes are not yet in right positions. Added an instruction ensuring the position is right.
36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { expect, type Page } from '@playwright/test'
|
|
import * as customExpect from './customExpect'
|
|
import * as locate from './locate'
|
|
import { graphNodeByBinding } from './locate'
|
|
|
|
// =================
|
|
// === goToGraph ===
|
|
// =================
|
|
|
|
/** Perform a successful login. */
|
|
export async function goToGraph(page: Page) {
|
|
await page.goto('/')
|
|
await expect(page.locator('.App')).toBeVisible()
|
|
// Wait until nodes are loaded.
|
|
await customExpect.toExist(locate.graphNode(page))
|
|
// Wait for position initialization
|
|
await expect(locate.graphNode(page).first()).toHaveCSS(
|
|
'transform',
|
|
'matrix(1, 0, 0, 1, -16, -16)',
|
|
)
|
|
}
|
|
|
|
// =================
|
|
// === Drag Node ===
|
|
// =================
|
|
|
|
/// Move node defined by the given binding by the given x and y.
|
|
export async function dragNodeByBinding(page: Page, nodeBinding: string, x: number, y: number) {
|
|
const node = graphNodeByBinding(page, nodeBinding)
|
|
const grabHandle = await node.locator('.grab-handle')
|
|
await grabHandle.dragTo(grabHandle, {
|
|
targetPosition: { x, y },
|
|
force: true,
|
|
})
|
|
}
|