mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
30 lines
921 B
TypeScript
30 lines
921 B
TypeScript
import type { n8nPage } from '../pages/n8nPage';
|
|
|
|
/**
|
|
* A class for user interactions with workflows that go across multiple pages.
|
|
*/
|
|
export class WorkflowComposer {
|
|
constructor(private readonly n8n: n8nPage) {}
|
|
|
|
/**
|
|
* Executes a successful workflow and waits for the notification to be closed.
|
|
* This waits for http calls and also closes the notification.
|
|
*/
|
|
async executeWorkflowAndWaitForNotification(
|
|
notificationMessage: string,
|
|
options: { timeout?: number } = {},
|
|
) {
|
|
const { timeout = 3000 } = options;
|
|
const responsePromise = this.n8n.page.waitForResponse(
|
|
(response) =>
|
|
response.url().includes('/rest/workflows/') &&
|
|
response.url().includes('/run') &&
|
|
response.request().method() === 'POST',
|
|
);
|
|
|
|
await this.n8n.canvas.clickExecuteWorkflowButton();
|
|
await responsePromise;
|
|
await this.n8n.notifications.waitForNotificationAndClose(notificationMessage, { timeout });
|
|
}
|
|
}
|