import type { Locator } from '@playwright/test'; import { BasePage } from '../BasePage'; /** * Convert to Sub-workflow Modal component for converting nodes to sub-workflows. * Used within CanvasPage as `n8n.canvas.convertToSubworkflowModal.*` * * @example * // Access via canvas page * await n8n.canvas.rightClickNode('My Node'); * await n8n.canvas.clickContextMenuAction('extract_sub_workflow'); * await n8n.canvas.convertToSubworkflowModal.waitForModal(); * await n8n.canvas.convertToSubworkflowModal.clickSubmitButton(); * await n8n.canvas.convertToSubworkflowModal.waitForClose(); */ export class ConvertToSubworkflowModal extends BasePage { constructor(private root: Locator) { super(root.page()); } getSubmitButton(): Locator { return this.root.getByTestId('submit-button'); } async waitForModal(): Promise { await this.root.waitFor({ state: 'visible' }); } async clickSubmitButton(): Promise { await this.getSubmitButton().click(); } async waitForClose(): Promise { await this.root.waitFor({ state: 'hidden' }); } }