This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch 3602-the-test-testgroupmanagement-is-failing
in repository https://gitbox.apache.org/repos/asf/streampipes.git


The following commit(s) were added to 
refs/heads/3602-the-test-testgroupmanagement-is-failing by this push:
     new 4fe04de889 fix(#3602): Fix testGroupManagement.spec.ts to support 
multiple languages
4fe04de889 is described below

commit 4fe04de88901f66111f65d47928fd76507c74205
Author: Philipp Zehnder <[email protected]>
AuthorDate: Fri May 9 10:22:43 2025 +0200

    fix(#3602): Fix testGroupManagement.spec.ts to support multiple languages
---
 .../apache/streampipes/rest/impl/UserResource.java |  7 ++++++-
 .../storage/couchdb/impl/UserStorage.java          |  2 +-
 .../utils/configuration/ConfigurationBtns.ts       | 12 +++++++++++
 .../userManagement/testGroupManagement.spec.ts     | 23 ++++++----------------
 .../edit-group-dialog.component.html               |  1 +
 .../user-group-configuration.component.html        |  1 +
 .../object-permission-dialog.component.html        |  2 +-
 7 files changed, 28 insertions(+), 20 deletions(-)

diff --git 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/UserResource.java
 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/UserResource.java
index 201aa8cf76..7a70277d50 100644
--- 
a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/UserResource.java
+++ 
b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/UserResource.java
@@ -190,7 +190,7 @@ public class UserResource extends 
AbstractAuthGuardedRestResource {
     String authenticatedUserId = getAuthenticatedUserSid();
     if (user != null && (authenticatedUserId.equals(principalId) || 
isAdmin())) {
       UserAccount existingUser = (UserAccount) getPrincipalById(principalId);
-      if (isUsernameAvailable(existingUser.getUsername())) {
+      if (isUserNameUnchanged(user, existingUser) || 
isUsernameAvailable(existingUser.getUsername())) {
         updateUser(existingUser, user, isAdmin(), existingUser.getPassword());
         user.setRev(existingUser.getRev());
         getUserStorage().updateUser(user);
@@ -338,6 +338,11 @@ public class UserResource extends 
AbstractAuthGuardedRestResource {
                          .equalsIgnoreCase(username));
   }
 
+  private boolean isUserNameUnchanged(UserAccount existingUser, UserAccount 
user) {
+    return existingUser.getUsername()
+                       .equalsIgnoreCase(user.getUsername());
+  }
+
   private void encryptAndStore(
       UserAccount userAccount,
       String property
diff --git 
a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserStorage.java
 
b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserStorage.java
index c7b5ad4e91..29be863eb3 100644
--- 
a/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserStorage.java
+++ 
b/streampipes-storage-couchdb/src/main/java/org/apache/streampipes/storage/couchdb/impl/UserStorage.java
@@ -74,7 +74,7 @@ public class UserStorage extends CrudViewDao implements 
IUserStorage {
   public Principal getUser(String username) {
     List<Principal> users = findByKey(viewName, username.toLowerCase(), 
Principal.class);
     if (users.size() != 1) {
-      LOG.error("None or to many users with matching username");
+      LOG.warn("None or to many users with matching username");
     }
     return users.size() > 0 ? users.get(0) : null;
   }
diff --git a/ui/cypress/support/utils/configuration/ConfigurationBtns.ts 
b/ui/cypress/support/utils/configuration/ConfigurationBtns.ts
index e556425409..1a9e72e5f3 100644
--- a/ui/cypress/support/utils/configuration/ConfigurationBtns.ts
+++ b/ui/cypress/support/utils/configuration/ConfigurationBtns.ts
@@ -31,4 +31,16 @@ export class ConfigurationBtns {
     public static generalConfigSaveBtn() {
         return cy.dataCy('sp-element-general-config-save');
     }
+
+    public static newUserGroupBtn() {
+        return cy.dataCy('new-user-group-btn');
+    }
+
+    public static authorizedGroupsLabel() {
+        return cy.dataCy('authorized-groups-label');
+    }
+
+    public static inputGroupName(groupName: string) {
+        return cy.dataCy('group-name-input').type(groupName);
+    }
 }
diff --git a/ui/cypress/tests/userManagement/testGroupManagement.spec.ts 
b/ui/cypress/tests/userManagement/testGroupManagement.spec.ts
index d28dacb037..03bb86b08c 100644
--- a/ui/cypress/tests/userManagement/testGroupManagement.spec.ts
+++ b/ui/cypress/tests/userManagement/testGroupManagement.spec.ts
@@ -25,6 +25,7 @@ import { PipelineElementBuilder } from 
'../../support/builder/PipelineElementBui
 import { PipelineBuilder } from '../../support/builder/PipelineBuilder';
 import { PermissionUtils } from '../../support/utils/user/PermissionUtils';
 import { NavigationUtils } from 
'../../support/utils/navigation/NavigationUtils';
+import { ConfigurationBtns } from 
'../../support/utils/configuration/ConfigurationBtns';
 
 describe('Test Group Management for Pipelines', () => {
     beforeEach('Setup Test', () => {
@@ -84,8 +85,8 @@ describe('Test Group Management for Pipelines', () => {
         );
 
         // Add new user group with pipeline admin role
-        cy.get('button').contains('New User Group').click();
-        cy.get('label').contains('Group Name').type('User_Group');
+        ConfigurationBtns.newUserGroupBtn().click();
+        ConfigurationBtns.inputGroupName('User_Group');
         cy.get('input[value="ROLE_PIPELINE_ADMIN"]').check();
         cy.dataCy('sp-element-edit-user-save').click();
 
@@ -97,7 +98,7 @@ describe('Test Group Management for Pipelines', () => {
         // Add user group to pipeline
         PipelineUtils.goToPipelines();
         PermissionUtils.openManagePermissions();
-        cy.get('label').contains('Authorized Groups').click();
+        ConfigurationBtns.authorizedGroupsLabel().click();
         cy.get('mat-option').contains('User_Group').click();
         PermissionUtils.save();
 
@@ -110,26 +111,14 @@ describe('Test Group Management for Pipelines', () => {
         ]);
 
         // Check if pipeline is visible
-        PipelineUtils.goToPipelines();
-        cy.dataCy('all-pipelines-table', { timeout: 10000 }).should(
-            'have.length',
-            1,
-        );
-        cy.dataCy('all-pipelines-table', { timeout: 10000 }).should(
-            'contain',
-            'Pipeline Test',
-        );
+        PipelineUtils.checkAmountOfPipelinesPipeline(1);
 
         // Login as user2
         UserUtils.switchUser(user2);
         NavigationUtils.validateActiveModules([NavigationUtils.PIPELINES]);
 
         // Check if pipeline is invisible to user2
-        PipelineUtils.goToPipelines();
-        cy.get('sp-pipeline-overview', { timeout: 10000 }).should(
-            'contain',
-            'No entries available',
-        );
+        PipelineUtils.checkAmountOfPipelinesPipeline(0);
 
         // Log in as admin and delete users
         UserUtils.switchUser(UserUtils.adminUser);
diff --git 
a/ui/src/app/configuration/security-configuration/edit-group-dialog/edit-group-dialog.component.html
 
b/ui/src/app/configuration/security-configuration/edit-group-dialog/edit-group-dialog.component.html
index b890f5ed64..53eac39a15 100644
--- 
a/ui/src/app/configuration/security-configuration/edit-group-dialog/edit-group-dialog.component.html
+++ 
b/ui/src/app/configuration/security-configuration/edit-group-dialog/edit-group-dialog.component.html
@@ -29,6 +29,7 @@
                             fxFlex
                             matInput
                             required
+                            data-cy="group-name-input"
                         />
                     </mat-form-field>
                 </div>
diff --git 
a/ui/src/app/configuration/security-configuration/user-group-configuration/user-group-configuration.component.html
 
b/ui/src/app/configuration/security-configuration/user-group-configuration/user-group-configuration.component.html
index e1f64ddca9..d3d3f60b7e 100644
--- 
a/ui/src/app/configuration/security-configuration/user-group-configuration/user-group-configuration.component.html
+++ 
b/ui/src/app/configuration/security-configuration/user-group-configuration/user-group-configuration.component.html
@@ -22,6 +22,7 @@
             mat-button
             mat-raised-button
             color="accent"
+            data-cy="new-user-group-btn"
             (click)="createGroup()"
         >
             <i class="material-icons">add</i><span>&nbsp;New User Group</span>
diff --git 
a/ui/src/app/core-ui/object-permission-dialog/object-permission-dialog.component.html
 
b/ui/src/app/core-ui/object-permission-dialog/object-permission-dialog.component.html
index b71686330d..460e0d9162 100644
--- 
a/ui/src/app/core-ui/object-permission-dialog/object-permission-dialog.component.html
+++ 
b/ui/src/app/core-ui/object-permission-dialog/object-permission-dialog.component.html
@@ -105,7 +105,7 @@
                         'Groups' | translate
                     }}</span>
                     <mat-form-field color="accent">
-                        <mat-label>{{
+                        <mat-label data-cy="authorized-groups-label">{{
                             'Authorized Groups' | translate
                         }}</mat-label>
                         <mat-chip-grid

Reply via email to