[ACS-5503] Folder rules rule update with correct error message when definition is invalid (#4610)

* [ACS-5503] Folder rules rule update with correct error message when definition is invalid

* [ACS-5503] Sonarlint fixes

* [ACS-5503] CR fixes
This commit is contained in:
MichalKinas
2025-06-17 10:57:21 +02:00
committed by GitHub
parent f48fc8c2d7
commit b57da70846
3 changed files with 26 additions and 6 deletions

View File

@@ -23,7 +23,7 @@
*/
import { TestBed } from '@angular/core/testing';
import { CoreTestingModule } from '@alfresco/adf-core';
import { CoreTestingModule, NotificationService } from '@alfresco/adf-core';
import { of } from 'rxjs';
import { FolderRulesService } from './folder-rules.service';
import {
@@ -42,6 +42,7 @@ import { AlfrescoApiService, AlfrescoApiServiceMock } from '@alfresco/adf-conten
describe('FolderRulesService', () => {
let folderRulesService: FolderRulesService;
let notificationService: NotificationService;
let callApiSpy: jasmine.Spy;
@@ -60,7 +61,8 @@ describe('FolderRulesService', () => {
providers: [FolderRulesService, { provide: AlfrescoApiService, useClass: AlfrescoApiServiceMock }]
});
folderRulesService = TestBed.inject<FolderRulesService>(FolderRulesService);
folderRulesService = TestBed.inject(FolderRulesService);
notificationService = TestBed.inject(NotificationService);
callApiSpy = spyOn<any>(folderRulesService, 'callApi');
});
@@ -148,6 +150,17 @@ describe('FolderRulesService', () => {
expect(result).toEqual(mockedRule);
});
it('should display error message and revert enabled state when updating rule fails', async () => {
callApiSpy
.withArgs(`/nodes/${nodeId}/rule-sets/${ruleSetId}/rules/${ruleId}`, 'PUT', mockedRule)
.and.returnValue(Promise.reject(new Error(JSON.stringify({ error: { briefSummary: 'Error updating rule' } }))));
spyOn(notificationService, 'showError');
const result = await folderRulesService.updateRule(nodeId, ruleId, mockedRule, ruleSetId);
expect(notificationService.showError).toHaveBeenCalledWith('Error updating rule');
expect(result.isEnabled).toBe(false);
});
it('should send correct GET request and return rule settings', async () => {
callApiSpy.withArgs(`/nodes/${nodeId}/rule-settings/${key}`, 'GET').and.returnValue(Promise.resolve(mockedRuleSettingsEntry));