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> 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