Skip to content

Commit

Permalink
[ACS-8190] change node selection to single for rule actions (#3888)
Browse files Browse the repository at this point in the history
  • Loading branch information
nikita-web-ua committed Jun 14, 2024
1 parent a6c929a commit e55dd6b
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 3 deletions.
10 changes: 10 additions & 0 deletions projects/aca-content/folder-rules/src/mock/actions.mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,16 @@ export const securityActionTransformedMock: ActionDefinitionTransformed = {
parameterDefinitions: [actionParamSecurityGroup, actionParamSecurityMark]
};

export const actionNodeTransformedMock: ActionDefinitionTransformed = {
id: 'mock-action-5-definition',
name: 'mock-action-5-definition',
description: '',
title: 'mock-action-5-definition',
applicableTypes: [],
trackStatus: false,
parameterDefinitions: [actionParam5TransformedMock]
};

export const actionsTransformedListMock: ActionDefinitionTransformed[] = [action1TransformedMock, action2TransformedMock];

export const validActionMock: RuleAction = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,21 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CardViewBoolItemModel, CardViewComponent, CardViewSelectItemModel, CardViewTextItemModel, CoreTestingModule } from '@alfresco/adf-core';
import { RuleActionUiComponent } from './rule-action.ui-component';
import { actionLinkToCategoryTransformedMock, actionsTransformedListMock, securityActionTransformedMock } from '../../mock/actions.mock';
import {
actionLinkToCategoryTransformedMock,
actionNodeTransformedMock,
actionsTransformedListMock,
securityActionTransformedMock
} from '../../mock/actions.mock';
import { By } from '@angular/platform-browser';
import { dummyCategoriesConstraints, dummyConstraints, dummyTagsConstraints } from '../../mock/action-parameter-constraints.mock';
import { securityMarksResponseMock, updateNotificationMock } from '../../mock/security-marks.mock';
import { CategoryService, TagService } from '@alfresco/adf-content-services';
import { MatDialog } from '@angular/material/dialog';
import { CategoryService, NodeAction, TagService } from '@alfresco/adf-content-services';
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing';
import { of, Subject } from 'rxjs';

describe('RuleActionUiComponent', () => {
let fixture: ComponentFixture<RuleActionUiComponent>;
Expand Down Expand Up @@ -144,6 +150,27 @@ describe('RuleActionUiComponent', () => {
expect(dialog.open['calls'].argsFor(0)[0].name).toBe('CategorySelectorDialogComponent');
});

it('should open node selector dialog with correct parameters', async () => {
const dialog = fixture.debugElement.injector.get(MatDialog);
component.actionDefinitions = [actionNodeTransformedMock];
const expectedData = {
selectionMode: 'single',
title: 'ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.CHOOSE_FOLDER',
actionName: NodeAction.CHOOSE,
currentFolderId: component.nodeId,
select: jasmine.any(Subject)
};
const dialogSpy = spyOn(dialog, 'open').and.returnValue({ afterClosed: () => of({}) } as MatDialogRef<any>);
fixture.detectChanges();

await changeMatSelectValue('mock-action-5-definition');
fixture.debugElement.query(By.css('.adf-textitem-action')).nativeElement.click();

expect(dialog.open).toHaveBeenCalledTimes(1);
expect(dialogSpy.calls.mostRecent().args[1].data).toEqual(expectedData);
expect(dialog.open['calls'].argsFor(0)[0].name).toBe('ContentNodeSelectorComponent');
});

describe('Select options', () => {
beforeEach(() => {
component.actionDefinitions = actionsTransformedListMock;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@ export class RuleActionUiComponent implements ControlValueAccessor, OnInit, OnCh

private openSelectorDialog(paramDefName) {
const data: ContentNodeSelectorComponentData = {
selectionMode: 'single',
title: this.translate.instant('ACA_FOLDER_RULES.RULE_DETAILS.PLACEHOLDER.CHOOSE_FOLDER'),
actionName: NodeAction.CHOOSE,
currentFolderId: this.nodeId,
Expand Down

0 comments on commit e55dd6b

Please sign in to comment.