Fixes: - Trigger labels have been updated in the workflows - Workflow runs are now opened by default in the side panel when launched manually by the user
151 lines
4.0 KiB
TypeScript
151 lines
4.0 KiB
TypeScript
import { expect } from '@playwright/test';
|
|
import { test } from '../lib/fixtures/blank-workflow';
|
|
|
|
test('The workflow run visualizer shows the executed draft version without the last draft changes', async ({
|
|
workflowVisualizer,
|
|
page,
|
|
}) => {
|
|
await workflowVisualizer.createInitialTrigger('manual');
|
|
|
|
const manualTriggerAvailabilitySelect = page.getByRole('button', {
|
|
name: 'When record is selected',
|
|
});
|
|
|
|
await manualTriggerAvailabilitySelect.click();
|
|
|
|
const alwaysAvailableOption = page.getByText('When no record is selected');
|
|
|
|
await alwaysAvailableOption.click();
|
|
|
|
await workflowVisualizer.closeSidePanel();
|
|
|
|
const { createdStepId: firstStepId } =
|
|
await workflowVisualizer.createStep('create-record');
|
|
|
|
await workflowVisualizer.closeSidePanel();
|
|
|
|
const launchTestButton = page.getByLabel(workflowVisualizer.workflowName);
|
|
|
|
await launchTestButton.click();
|
|
|
|
await workflowVisualizer.closeSidePanel();
|
|
|
|
await workflowVisualizer.deleteStep(firstStepId);
|
|
|
|
await page.goto('/objects/workflowRuns');
|
|
|
|
const recordTableRowForWorkflowRun = page
|
|
.getByRole('row', {
|
|
name: workflowVisualizer.workflowName,
|
|
})
|
|
.first();
|
|
|
|
const linkToWorkflowRun = recordTableRowForWorkflowRun
|
|
.getByRole('link', {
|
|
name: workflowVisualizer.workflowName,
|
|
})
|
|
.first();
|
|
|
|
await linkToWorkflowRun.click({ force: true });
|
|
|
|
const workflowRunNameElement = page
|
|
.getByText(`#1 - ${workflowVisualizer.workflowName}`)
|
|
.nth(1);
|
|
|
|
await expect(workflowRunNameElement).toBeVisible();
|
|
|
|
const executedFirstStepNode = workflowVisualizer.getStepNode(firstStepId);
|
|
|
|
await expect(executedFirstStepNode).toBeVisible();
|
|
|
|
await executedFirstStepNode.click();
|
|
|
|
await expect(workflowVisualizer.stepHeaderInCommandMenu).toContainText(
|
|
'Create Record',
|
|
);
|
|
});
|
|
|
|
test('Workflow Runs with a pending form step can be opened in the side panel and then in full screen', async ({
|
|
workflowVisualizer,
|
|
page,
|
|
}) => {
|
|
await workflowVisualizer.createInitialTrigger('manual');
|
|
|
|
const manualTriggerAvailabilitySelect = page.getByRole('button', {
|
|
name: 'When record is selected',
|
|
});
|
|
|
|
await manualTriggerAvailabilitySelect.click();
|
|
|
|
const alwaysAvailableOption = page.getByText('When no record is selected');
|
|
|
|
await alwaysAvailableOption.click();
|
|
|
|
await workflowVisualizer.closeSidePanel();
|
|
|
|
const { createdStepId: firstStepId } =
|
|
await workflowVisualizer.createStep('form');
|
|
|
|
const addFormFieldButton = page.getByText('Add Field', { exact: true });
|
|
|
|
await addFormFieldButton.click();
|
|
|
|
await workflowVisualizer.closeSidePanel();
|
|
|
|
const launchTestButton = page.getByLabel(workflowVisualizer.workflowName);
|
|
|
|
await launchTestButton.click();
|
|
|
|
const workflowRunName = `#1 - ${workflowVisualizer.workflowName}`;
|
|
|
|
await expect(workflowVisualizer.stepHeaderInCommandMenu).toContainText(
|
|
'Form',
|
|
{
|
|
timeout: 30_000,
|
|
},
|
|
);
|
|
|
|
await workflowVisualizer.goBackInCommandMenu.click();
|
|
|
|
const workflowRunNameInCommandMenu =
|
|
workflowVisualizer.commandMenu.getByText(workflowRunName);
|
|
|
|
await expect(workflowRunNameInCommandMenu).toBeVisible();
|
|
|
|
await workflowVisualizer.commandMenu
|
|
.locator(workflowVisualizer.triggerNode)
|
|
.click();
|
|
|
|
await expect(workflowVisualizer.stepHeaderInCommandMenu).toContainText(
|
|
'Launch manually',
|
|
);
|
|
|
|
await workflowVisualizer.goBackInCommandMenu.click();
|
|
|
|
const formStep = workflowVisualizer.commandMenu.locator(
|
|
workflowVisualizer.getStepNode(firstStepId),
|
|
);
|
|
|
|
await formStep.click();
|
|
|
|
await workflowVisualizer.goBackInCommandMenu.click();
|
|
|
|
const openInFullScreenButton = workflowVisualizer.commandMenu.getByRole(
|
|
'button',
|
|
{ name: 'Open' },
|
|
);
|
|
|
|
await openInFullScreenButton.click();
|
|
|
|
const workflowRunNameInShowPage = page
|
|
.getByText(`#1 - ${workflowVisualizer.workflowName}`)
|
|
.nth(1);
|
|
|
|
await expect(workflowRunNameInShowPage).toBeVisible();
|
|
|
|
// Expect the side panel to be opened by default on the form.
|
|
await expect(workflowVisualizer.stepHeaderInCommandMenu).toContainText(
|
|
'Form',
|
|
);
|
|
});
|