94 lines
3.0 KiB
JavaScript
94 lines
3.0 KiB
JavaScript
const { ExecutionDetailsPage } = require('./execution-details-page');
|
|
const { expect } = require('@playwright/test');
|
|
|
|
export class ExecutionStepDetails extends ExecutionDetailsPage {
|
|
constructor(page, executionStep) {
|
|
super(page);
|
|
|
|
this.executionStep = executionStep;
|
|
this.stepType = executionStep.getByTestId('step-type');
|
|
this.stepPositionAndName = executionStep.getByTestId(
|
|
'step-position-and-name'
|
|
);
|
|
this.executionStepId = executionStep.getByTestId('execution-step-id');
|
|
this.executionStepExecutedAt = executionStep.getByTestId(
|
|
'execution-step-executed-at'
|
|
);
|
|
this.dataInTab = executionStep.getByTestId('data-in-tab');
|
|
this.dataInPanel = executionStep.getByTestId('data-in-panel');
|
|
this.dataOutTab = executionStep.getByTestId('data-out-tab');
|
|
this.dataOutPanel = executionStep.getByTestId('data-out-panel');
|
|
}
|
|
|
|
async expectDataInTabToBeSelectedByDefault() {
|
|
await expect(this.dataInTab).toHaveClass(/Mui-selected/);
|
|
}
|
|
|
|
async expectDataInToContainText(searchText, desiredText) {
|
|
await expect(this.dataInPanel).toContainText(desiredText);
|
|
await this.dataInPanel.locator('#search-input').fill(searchText);
|
|
await expect(this.dataInPanel).toContainText(desiredText);
|
|
}
|
|
|
|
async expectDataOutToContainText(searchText, desiredText) {
|
|
await expect(this.dataOutPanel).toContainText(desiredText);
|
|
await this.dataOutPanel.locator('#search-input').fill(searchText);
|
|
await expect(this.dataOutPanel).toContainText(desiredText);
|
|
}
|
|
|
|
async verifyTriggerExecutionStep({
|
|
stepPositionAndName,
|
|
stepDataInKey,
|
|
stepDataInValue,
|
|
stepDataOutKey,
|
|
stepDataOutValue,
|
|
}) {
|
|
await expect(this.stepType).toHaveText('Trigger');
|
|
await this.verifyExecutionStep({
|
|
stepPositionAndName,
|
|
stepDataInKey,
|
|
stepDataInValue,
|
|
stepDataOutKey,
|
|
stepDataOutValue,
|
|
});
|
|
}
|
|
|
|
async verifyActionExecutionStep({
|
|
stepPositionAndName,
|
|
stepDataInKey,
|
|
stepDataInValue,
|
|
stepDataOutKey,
|
|
stepDataOutValue,
|
|
}) {
|
|
await expect(this.stepType).toHaveText('Action');
|
|
await this.verifyExecutionStep({
|
|
stepPositionAndName,
|
|
stepDataInKey,
|
|
stepDataInValue,
|
|
stepDataOutKey,
|
|
stepDataOutValue,
|
|
});
|
|
}
|
|
|
|
async verifyExecutionStep({
|
|
stepPositionAndName,
|
|
stepDataInKey,
|
|
stepDataInValue,
|
|
stepDataOutKey,
|
|
stepDataOutValue,
|
|
}) {
|
|
await expect(this.stepPositionAndName).toHaveText(stepPositionAndName);
|
|
await expect(this.executionStepId).toHaveText(
|
|
/ID: [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i
|
|
);
|
|
await expect(this.executionStepExecutedAt).toContainText(
|
|
/executed \d+ seconds? ago/
|
|
);
|
|
await this.expectDataInTabToBeSelectedByDefault();
|
|
await this.expectDataInToContainText(stepDataInKey, stepDataInValue);
|
|
await this.dataOutTab.click();
|
|
await expect(this.dataOutPanel).toContainText(stepDataOutValue);
|
|
await this.expectDataOutToContainText(stepDataOutKey, stepDataOutValue);
|
|
}
|
|
}
|