This is an automated email from the ASF dual-hosted git repository.
zehnder pushed a commit to branch
3430-filtering-for-numerical-dimension-properties-in-data-explorer
in repository https://gitbox.apache.org/repos/asf/streampipes.git
The following commit(s) were added to
refs/heads/3430-filtering-for-numerical-dimension-properties-in-data-explorer
by this push:
new 02e7a37c1c fix(#3430): Add e2e test to validate functionality of
filter dimension property numbers
02e7a37c1c is described below
commit 02e7a37c1cbb1b7d9575a69fb4dc78c1def8da50
Author: Philipp Zehnder <[email protected]>
AuthorDate: Mon Jan 20 13:42:10 2025 +0100
fix(#3430): Add e2e test to validate functionality of filter dimension
property numbers
---
.../datalake/filterDimensionProperties.csv | 3 +
ui/cypress/support/utils/connect/ConnectUtils.ts | 24 ++++---
.../datalake/filterDimensionProperties.spec.ts | 80 ++++++++++++++++++++++
3 files changed, 99 insertions(+), 8 deletions(-)
diff --git a/ui/cypress/fixtures/datalake/filterDimensionProperties.csv
b/ui/cypress/fixtures/datalake/filterDimensionProperties.csv
new file mode 100644
index 0000000000..7b42dc4df1
--- /dev/null
+++ b/ui/cypress/fixtures/datalake/filterDimensionProperties.csv
@@ -0,0 +1,3 @@
+timestamp;dimensionKey;value
+1737123058000;1.0;10.0
+1737123059000;2.0;10.0
diff --git a/ui/cypress/support/utils/connect/ConnectUtils.ts
b/ui/cypress/support/utils/connect/ConnectUtils.ts
index 52d2ec6c88..40956ebffb 100644
--- a/ui/cypress/support/utils/connect/ConnectUtils.ts
+++ b/ui/cypress/support/utils/connect/ConnectUtils.ts
@@ -48,6 +48,8 @@ export class ConnectUtils {
ConnectEventSchemaUtils.addTimestampProperty();
}
+ ConnectUtils.configureDimensionProperties(adapterConfiguration);
+
ConnectEventSchemaUtils.finishEventSchemaConfiguration();
ConnectUtils.startAdapter(
@@ -66,6 +68,20 @@ export class ConnectUtils {
ConnectUtils.configureAdapter(adapterConfiguration);
+ ConnectUtils.configureDimensionProperties(adapterConfiguration);
+
+ if (adapterConfiguration.timestampProperty) {
+ ConnectEventSchemaUtils.markPropertyAsTimestamp(
+ adapterConfiguration.timestampProperty,
+ );
+ }
+
+ ConnectEventSchemaUtils.finishEventSchemaConfiguration();
+ }
+
+ private static configureDimensionProperties(
+ adapterConfiguration: AdapterInput,
+ ) {
if (adapterConfiguration.dimensionProperties.length > 0) {
adapterConfiguration.dimensionProperties.forEach(
dimensionPropertyName => {
@@ -75,14 +91,6 @@ export class ConnectUtils {
},
);
}
-
- if (adapterConfiguration.timestampProperty) {
- ConnectEventSchemaUtils.markPropertyAsTimestamp(
- adapterConfiguration.timestampProperty,
- );
- }
-
- ConnectEventSchemaUtils.finishEventSchemaConfiguration();
}
public static addMachineDataSimulator(
diff --git a/ui/cypress/tests/datalake/filterDimensionProperties.spec.ts
b/ui/cypress/tests/datalake/filterDimensionProperties.spec.ts
new file mode 100644
index 0000000000..9e1bb1d125
--- /dev/null
+++ b/ui/cypress/tests/datalake/filterDimensionProperties.spec.ts
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+import { DataLakeUtils } from '../../support/utils/datalake/DataLakeUtils';
+import { DataLakeWidgetTableUtils } from
'../../support/utils/datalake/DataLakeWidgetTableUtils';
+import { DataLakeFilterConfig } from
'../../support/model/DataLakeFilterConfig';
+import { AdapterBuilder } from '../../support/builder/AdapterBuilder';
+import { ConnectBtns } from '../../support/utils/connect/ConnectBtns';
+import { ConnectUtils } from '../../support/utils/connect/ConnectUtils';
+import { FileManagementUtils } from '../../support/utils/FileManagementUtils';
+
+describe('Validate that filter works for numerical dimension property', () => {
+ beforeEach('Setup Test', () => {
+ cy.initStreamPipesTest();
+
+ FileManagementUtils.addFile('datalake/filterDimensionProperties.csv');
+ const adapterInput = AdapterBuilder.create('File_Stream')
+ .setName('Test Adapter')
+ .setTimestampProperty('timestamp')
+ .addDimensionProperty('dimensionKey')
+ .setStoreInDataLake()
+ .setFormat('csv')
+ .addFormatInput('input', ConnectBtns.csvDelimiter(), ';')
+ .addFormatInput('checkbox', ConnectBtns.csvHeader(), 'check')
+ .build();
+ ConnectUtils.testAdapter(adapterInput);
+ });
+
+ it('Perform Test', () => {
+ DataLakeUtils.goToDatalake();
+ DataLakeUtils.createAndEditDataView();
+
+ // create table widget and select time range
+ const startDate = new Date(1737029442000);
+ const endDate = new Date(1742220659000);
+
+ DataLakeUtils.clickOrderBy('descending');
+
+ DataLakeUtils.openVisualizationConfig();
+ DataLakeUtils.selectVisualizationType('Table');
+ DataLakeUtils.selectTimeRange(startDate, endDate);
+ cy.wait(1000);
+
+ // validate data in table
+ DataLakeWidgetTableUtils.checkAmountOfRows(2);
+
+ // select filter for tag
+ DataLakeUtils.selectDataConfig();
+ const filterConfig = new DataLakeFilterConfig(
+ 'dimensionKey',
+ '1.0',
+ '=',
+ );
+ DataLakeUtils.dataConfigAddFilter(filterConfig);
+
+ // validate data in table is filtered
+ DataLakeWidgetTableUtils.checkAmountOfRows(1);
+
+ // remove filter
+ DataLakeUtils.dataConfigRemoveFilter();
+
+ // validate data again
+ DataLakeWidgetTableUtils.checkAmountOfRows(2);
+ });
+});