49 lines
2.1 KiB
TypeScript
49 lines
2.1 KiB
TypeScript
import { Page, expect } from '@playwright/test';
|
|
|
|
const property = {
|
|
async selectConnection(page: Page, params: { connection: string }) {
|
|
await page.getByRole('combobox', { name: 'Connection' }).locator('span').click();
|
|
await page.getByText(params.connection, { exact: true }).click();
|
|
},
|
|
async selectDropdown(page: Page, params: { property: string, value: string }) {
|
|
await page.getByText(params.property, { exact: true }).click()
|
|
await page.getByText(params.value).click();
|
|
}
|
|
}
|
|
|
|
export const builder = {
|
|
async selectInitialTrigger(page: Page, params: { piece: string, trigger: string }) {
|
|
await page.getByText('Select Trigger', { exact: true }).click();
|
|
await page.getByPlaceholder('Search').click();
|
|
await page.getByPlaceholder('Search').fill(params.piece);
|
|
await page.getByAltText(params.piece).click();
|
|
|
|
await page.locator('mat-form-field div').filter({ hasText: 'Trigger Select a Trigger' }).first().click();
|
|
await page.getByText(params.trigger, { exact: true }).click();
|
|
await page.waitForTimeout(5000);
|
|
},
|
|
async addAction(page: Page, params: { piece: string, action: string }) {
|
|
await page.locator('app-small-add-button div').first().click();
|
|
await page.getByPlaceholder('Search').click();
|
|
await page.getByPlaceholder('Search').fill(params.piece);
|
|
await page.getByText(params.piece).click();
|
|
|
|
await page.getByText('Select an Action', { exact: true }).click();
|
|
await page.getByText(params.action, { exact: true }).click();
|
|
},
|
|
async testFlowAndWaitForSuccess(page: Page) {
|
|
await page.getByText('Test flow').click();
|
|
await page.waitForSelector('//*[contains(text(),"Run succeeded")]'); // Wait for the element to appear
|
|
const runSuccessText = await page.locator('//*[contains(text(),"Run succeeded")]').textContent();
|
|
expect(runSuccessText).toContain('Run succeeded');
|
|
},
|
|
async exitRun(page: Page) {
|
|
await page.getByRole('button', { name: 'Exit Run' }).click();
|
|
},
|
|
async clickHome(page: Page) {
|
|
await page.getByLabel('Home').click();
|
|
},
|
|
property,
|
|
}
|
|
|