mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 10:31:15 +00:00
test: Migrate cypress tests batch 1 to playwright (#19569)
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
import type { n8nPage } from '../pages/n8nPage';
|
||||
|
||||
export class CanvasComposer {
|
||||
@@ -37,4 +39,62 @@ export class CanvasComposer {
|
||||
await this.n8n.canvas.selectAll();
|
||||
await this.copySelectedNodesWithToast();
|
||||
}
|
||||
|
||||
/**
|
||||
* Switch between editor and workflow history and back
|
||||
*/
|
||||
async switchBetweenEditorAndHistory(): Promise<void> {
|
||||
await this.n8n.page.getByTestId('workflow-history-button').click();
|
||||
await this.n8n.page.getByTestId('workflow-history-close-button').click();
|
||||
await this.n8n.page.waitForLoadState();
|
||||
await expect(this.n8n.canvas.getCanvasNodes().first()).toBeVisible();
|
||||
await expect(this.n8n.canvas.getCanvasNodes().last()).toBeVisible();
|
||||
}
|
||||
|
||||
/**
|
||||
* Switch between editor and workflow list and back
|
||||
*/
|
||||
async switchBetweenEditorAndWorkflowList(): Promise<void> {
|
||||
await this.n8n.page.getByTestId('menu-item').first().click();
|
||||
await this.n8n.page.getByTestId('resources-list-item-workflow').first().click();
|
||||
await expect(this.n8n.canvas.getCanvasNodes().first()).toBeVisible();
|
||||
await expect(this.n8n.canvas.getCanvasNodes().last()).toBeVisible();
|
||||
}
|
||||
|
||||
/**
|
||||
* Zoom in and validate that zoom functionality works
|
||||
*/
|
||||
async zoomInAndCheckNodes(): Promise<void> {
|
||||
await this.n8n.canvas.getCanvasNodes().first().waitFor();
|
||||
|
||||
const initialNodeSize = await this.n8n.page.evaluate(() => {
|
||||
const firstNode = document.querySelector('[data-test-id="canvas-node"]');
|
||||
if (!firstNode) {
|
||||
throw new Error('Canvas node not found during initial measurement');
|
||||
}
|
||||
return firstNode.getBoundingClientRect().width;
|
||||
});
|
||||
|
||||
for (let i = 0; i < 4; i++) {
|
||||
await this.n8n.canvas.clickZoomInButton();
|
||||
}
|
||||
|
||||
const finalNodeSize = await this.n8n.page.evaluate(() => {
|
||||
const firstNode = document.querySelector('[data-test-id="canvas-node"]');
|
||||
if (!firstNode) {
|
||||
throw new Error('Canvas node not found during final measurement');
|
||||
}
|
||||
return firstNode.getBoundingClientRect().width;
|
||||
});
|
||||
|
||||
// Validate zoom increased node sizes by at least 50%
|
||||
const zoomWorking = finalNodeSize > initialNodeSize * 1.5;
|
||||
|
||||
if (!zoomWorking) {
|
||||
throw new Error(
|
||||
"Zoom functionality not working: nodes didn't scale properly. " +
|
||||
`Initial: ${initialNodeSize.toFixed(1)}px, Final: ${finalNodeSize.toFixed(1)}px`,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user