139 lines
4.4 KiB
JavaScript
139 lines
4.4 KiB
JavaScript
const { request } = require('@playwright/test');
|
|
const { test, expect } = require('../../fixtures/index');
|
|
const {
|
|
triggerFlow,
|
|
publishFlow,
|
|
addWebhookFlow,
|
|
} = require('../../helpers/flow-api-helper');
|
|
const {
|
|
ExecutionStepDetails,
|
|
} = require('../../fixtures/execution-step-details');
|
|
const { getToken } = require('../../helpers/auth-api-helper');
|
|
|
|
test.describe('Executions page', () => {
|
|
let flowId;
|
|
|
|
test.beforeAll(async () => {
|
|
const apiRequest = await request.newContext();
|
|
const tokenJsonResponse = await getToken(apiRequest);
|
|
|
|
flowId = await addWebhookFlow(apiRequest, tokenJsonResponse.data.token);
|
|
|
|
const { data } = await publishFlow(
|
|
apiRequest,
|
|
tokenJsonResponse.data.token,
|
|
flowId
|
|
);
|
|
|
|
const triggerStepWebhookUrl = data.steps.find(
|
|
(step) => step.type === 'trigger'
|
|
).webhookUrl;
|
|
|
|
await triggerFlow(apiRequest, triggerStepWebhookUrl);
|
|
});
|
|
|
|
test.beforeEach(async ({ page }) => {
|
|
await page.getByTestId('executions-page-drawer-link').click();
|
|
});
|
|
|
|
test('show correct step data for trigger and actions on test and non-test execution', async ({
|
|
page,
|
|
executionsPage,
|
|
executionDetailsPage,
|
|
}) => {
|
|
await executionsPage.executionsPageLoader.waitFor({
|
|
state: 'detached',
|
|
});
|
|
const flowExecutions = await executionsPage.executionRow.filter({
|
|
hasText: flowId,
|
|
});
|
|
await test.step('show only trigger step on test execution', async () => {
|
|
await expect(flowExecutions.last()).toContainText('Test run');
|
|
await flowExecutions.last().click();
|
|
|
|
await executionDetailsPage.verifyExecutionData(flowId);
|
|
await expect(executionDetailsPage.executionStep).toHaveCount(1);
|
|
|
|
const executionStepDetails = new ExecutionStepDetails(
|
|
page,
|
|
executionDetailsPage.executionStep.last()
|
|
);
|
|
await executionStepDetails.verifyTriggerExecutionStep({
|
|
stepPositionAndName: '1. Webhook',
|
|
stepDataInKey: 'workSynchronously',
|
|
stepDataInValue: 'workSynchronously',
|
|
stepDataOutKey: 'host',
|
|
stepDataOutValue: 'localhost',
|
|
});
|
|
|
|
await page.goBack();
|
|
});
|
|
|
|
await test.step('show trigger and action step on action test execution', async () => {
|
|
await expect(flowExecutions.nth(1)).toContainText('Test run');
|
|
await flowExecutions.nth(1).click();
|
|
|
|
await expect(executionDetailsPage.executionStep).toHaveCount(2);
|
|
await executionDetailsPage.verifyExecutionData(flowId);
|
|
|
|
const firstExecutionStepDetails = new ExecutionStepDetails(
|
|
page,
|
|
executionDetailsPage.executionStep.first()
|
|
);
|
|
await firstExecutionStepDetails.verifyTriggerExecutionStep({
|
|
stepPositionAndName: '1. Webhook',
|
|
stepDataInKey: 'workSynchronously',
|
|
stepDataInValue: 'workSynchronously',
|
|
stepDataOutKey: 'host',
|
|
stepDataOutValue: 'localhost',
|
|
});
|
|
|
|
const lastExecutionStepDetails = new ExecutionStepDetails(
|
|
page,
|
|
executionDetailsPage.executionStep.last()
|
|
);
|
|
await lastExecutionStepDetails.verifyActionExecutionStep({
|
|
stepPositionAndName: '2. Webhook',
|
|
stepDataInKey: 'body',
|
|
stepDataInValue: 'body:"ok"',
|
|
stepDataOutKey: 'body',
|
|
stepDataOutValue: 'body:"ok"',
|
|
});
|
|
|
|
await page.goBack();
|
|
});
|
|
|
|
await test.step('show trigger and action step on flow execution', async () => {
|
|
await expect(flowExecutions.first()).not.toContainText('Test run');
|
|
await flowExecutions.first().click();
|
|
|
|
await expect(executionDetailsPage.executionStep).toHaveCount(2);
|
|
await executionDetailsPage.verifyExecutionData(flowId);
|
|
|
|
const firstExecutionStepDetails = new ExecutionStepDetails(
|
|
page,
|
|
executionDetailsPage.executionStep.first()
|
|
);
|
|
await firstExecutionStepDetails.verifyTriggerExecutionStep({
|
|
stepPositionAndName: '1. Webhook',
|
|
stepDataInKey: 'workSynchronously',
|
|
stepDataInValue: 'workSynchronously',
|
|
stepDataOutKey: 'host',
|
|
stepDataOutValue: 'localhost',
|
|
});
|
|
|
|
const lastExecutionStepDetails = new ExecutionStepDetails(
|
|
page,
|
|
executionDetailsPage.executionStep.last()
|
|
);
|
|
await lastExecutionStepDetails.verifyActionExecutionStep({
|
|
stepPositionAndName: '2. Webhook',
|
|
stepDataInKey: 'body',
|
|
stepDataInValue: 'body:"ok"',
|
|
stepDataOutKey: 'body',
|
|
stepDataOutValue: 'body:"ok"',
|
|
});
|
|
});
|
|
});
|
|
});
|