This is an automated email from the ASF dual-hosted git repository. SvenO3 pushed a commit to branch 4491-create-e2e-tests-for-critical-adapter-and-pipeline-updates in repository https://gitbox.apache.org/repos/asf/streampipes.git
commit 5091d495e1f2827992254b8adfe136fed0c0fd8e Author: Sven Oehler <[email protected]> AuthorDate: Thu May 21 11:10:58 2026 +0200 Improve pipeline tests --- ui/cypress/support/utils/pipeline/PipelineBtns.ts | 8 ++++++ ui/cypress/support/utils/pipeline/PipelineUtils.ts | 5 ++++ .../pipeline/pipelineDataLakeSchemaUpdate.spec.ts | 29 ++++++++++++++-------- ...-assembly-options-pipeline-cache.component.html | 1 + 4 files changed, 32 insertions(+), 11 deletions(-) diff --git a/ui/cypress/support/utils/pipeline/PipelineBtns.ts b/ui/cypress/support/utils/pipeline/PipelineBtns.ts index b40d50fc1b..833c1b170b 100644 --- a/ui/cypress/support/utils/pipeline/PipelineBtns.ts +++ b/ui/cypress/support/utils/pipeline/PipelineBtns.ts @@ -58,6 +58,10 @@ export class PipelineBtns { return cy.dataCy('sp-element-configuration-save'); } + public static savingPipelineModification() { + return cy.dataCy('saving-pipeline-modification', { timeout: 6000 }); + } + public static mappingCheckbox(fieldName: string) { return cy.dataCy(fieldName).find('.mdc-checkbox'); } @@ -98,6 +102,10 @@ export class PipelineBtns { return cy.dataCy('sp-pipeline-started-error', { timeout: 15000 }); } + public static pipelineStartedSuccess() { + return cy.dataCy('sp-pipeline-started-success', { timeout: 15000 }); + } + public static updateAndMigratePipeline() { return cy.dataCy('btn-update-pipeline-migrate'); } diff --git a/ui/cypress/support/utils/pipeline/PipelineUtils.ts b/ui/cypress/support/utils/pipeline/PipelineUtils.ts index 1ea06a0eaf..b9668aa8e4 100644 --- a/ui/cypress/support/utils/pipeline/PipelineUtils.ts +++ b/ui/cypress/support/utils/pipeline/PipelineUtils.ts @@ -257,4 +257,9 @@ export class PipelineUtils { .find('tr') .should('have.length', expectedCount + 1); } + + public static pipelineElementUpdateCompleted() { + PipelineBtns.savingPipelineModification().should('be.visible'); + PipelineBtns.savingPipelineModification().should('not.exist'); + } } diff --git a/ui/cypress/tests/pipeline/pipelineDataLakeSchemaUpdate.spec.ts b/ui/cypress/tests/pipeline/pipelineDataLakeSchemaUpdate.spec.ts index 39333880eb..d17b1fe6a0 100644 --- a/ui/cypress/tests/pipeline/pipelineDataLakeSchemaUpdate.spec.ts +++ b/ui/cypress/tests/pipeline/pipelineDataLakeSchemaUpdate.spec.ts @@ -44,8 +44,10 @@ describe('Test pipeline updates with data lake schema changes', () => { editPipelineProcessor(); PipelineBtns.mappingCheckbox('density').click(); PipelineBtns.saveElementConfigBtn().click(); + PipelineUtils.pipelineElementUpdateCompleted(); PipelineBtns.settingsPipelineElementBtn().eq(1).click(); - savePipelineElementAndStartUpdatePreflight(); + PipelineBtns.saveElementConfigBtn().click(); + savePipeline(); PipelineBtns.pipelineEditWarning().contains(dataLakeMeasurement); PipelineBtns.pipelineMeasurementEditWarning().contains( @@ -69,7 +71,9 @@ describe('Test pipeline updates with data lake schema changes', () => { .clear() .type('densityHash') .blur(); - savePipelineElementAndStartUpdatePreflight(); + PipelineBtns.saveElementConfigBtn().click(); + PipelineUtils.pipelineElementUpdateCompleted(); + savePipeline(); PipelineBtns.pipelineEditWarning().contains(dataLakeMeasurement); PipelineBtns.pipelineChartEditWarning().contains(chartName); @@ -77,9 +81,7 @@ describe('Test pipeline updates with data lake schema changes', () => { PipelineBtns.updateAndMigratePipeline().should('not.be.disabled'); PipelineBtns.updateAndMigratePipeline().click(); - cy.dataCy('sp-pipeline-started-success', { timeout: 15000 }).should( - 'be.visible', - ); + PipelineBtns.pipelineStartedSuccess().should('be.visible'); PipelineBtns.navigateToPipelineOverview().click(); ChartUtils.goToDatalake(); @@ -89,7 +91,9 @@ describe('Test pipeline updates with data lake schema changes', () => { it('Test pipeline update with an added field', () => { createAdapter(); addPipelineWithProcessor(javaScriptEvalProcessor()); + addTableChart(dataLakeMeasurement); + PipelineUtils.goToPipelines(); editPipelineProcessor(); PipelineBtns.outputAddField().click(); PipelineBtns.outputRuntimeName().last().type('pipeline_added'); @@ -99,12 +103,16 @@ describe('Test pipeline updates with data lake schema changes', () => { .get('mat-option') .contains('Float') .click(); - savePipelineElementAndStartUpdatePreflight(); + PipelineBtns.saveElementConfigBtn().click(); + PipelineUtils.pipelineElementUpdateCompleted(); + savePipeline(); PipelineBtns.pipelineEditWarning().should('not.exist'); - cy.dataCy('sp-pipeline-started-success', { timeout: 15000 }).should( - 'be.visible', - ); + PipelineBtns.pipelineStartedSuccess().should('be.visible'); + PipelineBtns.navigateToPipelineOverview().click(); + + ChartUtils.goToDatalake(); + ChartBtns.chartSyncProblemIcon().should('not.exist'); }); function addPipelineWithProcessor(processingElement: PipelineElementInput) { @@ -154,8 +162,7 @@ describe('Test pipeline updates with data lake schema changes', () => { PipelineBtns.settingsPipelineElementBtn().first().click(); } - function savePipelineElementAndStartUpdatePreflight() { - PipelineBtns.saveElementConfigBtn().click(); + function savePipeline() { PipelineBtns.savePipelineBtn().click(); PipelineBtns.navigateToOverviewCheckbox().children().click(); PipelineBtns.editorApplyBtn().click(); diff --git a/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly-options/pipeline-assembly-options-pipeline-cache/pipeline-assembly-options-pipeline-cache.component.html b/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly-options/pipeline-assembly-options-pipeline-cache/pipeline-assembly-options-pipeline-cache.component.html index b59c2c1f00..380c1af063 100644 --- a/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly-options/pipeline-assembly-options-pipeline-cache/pipeline-assembly-options-pipeline-cache.component.html +++ b/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly-options/pipeline-assembly-options-pipeline-cache/pipeline-assembly-options-pipeline-cache.component.html @@ -26,6 +26,7 @@ <div fxLayout="row" fxLayoutAlign="start center"> @if (pipelineCacheRunning) { <mat-spinner + data-cy="saving-pipeline-modification" [mode]="'indeterminate'" color="accent" [diameter]="15"
