enso/app/gui2/e2e/graphNavigator.spec.ts
2024-06-06 16:47:02 +00:00

33 lines
995 B
TypeScript

import { test } from '@playwright/test'
import assert from 'assert'
import * as actions from './actions'
import { expect } from './customExpect'
import * as locate from './locate'
test('Navigating with arrows', async ({ page }) => {
await actions.goToGraph(page)
// Make sure nothing else is focused right now.
await locate.graphEditor(page).click({ position: { x: 400, y: 400 } })
const allNodes = await locate.graphNode(page).all()
const receiveBBoxes = () =>
Promise.all(
Array.from(allNodes, (node) =>
node.boundingBox().then((bbox) => {
assert(bbox != null)
return bbox
}),
),
)
const initialBBoxes = await receiveBBoxes()
await page.keyboard.press('ArrowLeft', { delay: 500 })
const newBBoxes = await receiveBBoxes()
expect(newBBoxes).toEqual(
Array.from(initialBBoxes, (bbox) =>
expect.objectContaining({
x: expect.not.closeTo(bbox.x),
y: expect.closeTo(bbox.y),
}),
),
)
})