mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-1949] fix issue that appears on call action on chosenNode from c… (#2690)
* [ADF-1949] fix issue that appears on call action on chosenNode from custom source list * [ADF-1949] update unit tests
This commit is contained in:
@@ -53,6 +53,8 @@ describe('ContentNodeSelectorComponent', () => {
|
|||||||
let data: any;
|
let data: any;
|
||||||
let searchService: SearchService;
|
let searchService: SearchService;
|
||||||
let searchSpy: jasmine.Spy;
|
let searchSpy: jasmine.Spy;
|
||||||
|
let apiService: AlfrescoApiService;
|
||||||
|
let nodesApi;
|
||||||
|
|
||||||
let _resolve: Function;
|
let _resolve: Function;
|
||||||
|
|
||||||
@@ -203,6 +205,10 @@ describe('ContentNodeSelectorComponent', () => {
|
|||||||
_resolve = resolve;
|
_resolve = resolve;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
apiService = TestBed.get(AlfrescoApiService);
|
||||||
|
nodesApi = apiService.nodesApi;
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Parameters', () => {
|
describe('Parameters', () => {
|
||||||
@@ -670,6 +676,32 @@ describe('ContentNodeSelectorComponent', () => {
|
|||||||
let chooseButton = fixture.debugElement.query(By.css('[data-automation-id="content-node-selector-actions-choose"]'));
|
let chooseButton = fixture.debugElement.query(By.css('[data-automation-id="content-node-selector-actions-choose"]'));
|
||||||
expect(chooseButton.nativeElement.disabled).toBe(true);
|
expect(chooseButton.nativeElement.disabled).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should make the call to get the corresponding node entry to emit when a site node is selected as destination', () => {
|
||||||
|
spyOn(nodesApi, 'getNode').and.callFake((nodeId) => {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
resolve({entry: {id: nodeId}});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
const siteNode1 = {title: 'my files', guid: '-my-'};
|
||||||
|
const siteNode2 = {title: 'my sites', guid: '-mysites-'};
|
||||||
|
|
||||||
|
component.dropdownSiteList = [siteNode1, siteNode2];
|
||||||
|
fixture.detectChanges();
|
||||||
|
component.chosenNode = siteNode1;
|
||||||
|
fixture.detectChanges();
|
||||||
|
component.choose();
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
include: ['path', 'properties', 'allowableOperations']
|
||||||
|
};
|
||||||
|
expect(nodesApi.getNode).toHaveBeenCalledWith(
|
||||||
|
'-my-',
|
||||||
|
options
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
import { Component, EventEmitter, Inject, Input, OnInit, Optional, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
||||||
import { AlfrescoApiService, ContentService, HighlightDirective, SiteModel, UserPreferencesService } from '@alfresco/adf-core';
|
import { AlfrescoApiService, ContentService, HighlightDirective, SiteModel, UserPreferencesService } from '@alfresco/adf-core';
|
||||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
|
||||||
import { MinimalNodeEntryEntity, NodePaging, Pagination } from 'alfresco-js-api';
|
import { MinimalNodeEntryEntity, NodePaging, Pagination, Site } from 'alfresco-js-api';
|
||||||
import { DocumentListComponent, PaginationStrategy } from '../document-list/components/document-list.component';
|
import { DocumentListComponent, PaginationStrategy } from '../document-list/components/document-list.component';
|
||||||
import { RowFilter } from '../document-list/data/row-filter.model';
|
import { RowFilter } from '../document-list/data/row-filter.model';
|
||||||
import { ImageResolver } from '../document-list/data/image-resolver.model';
|
import { ImageResolver } from '../document-list/data/image-resolver.model';
|
||||||
@@ -40,7 +40,7 @@ export class ContentNodeSelectorComponent implements OnInit {
|
|||||||
showingSearchResults: boolean = false;
|
showingSearchResults: boolean = false;
|
||||||
loadingSearchResults: boolean = false;
|
loadingSearchResults: boolean = false;
|
||||||
inDialog: boolean = false;
|
inDialog: boolean = false;
|
||||||
chosenNode: MinimalNodeEntryEntity | null = null;
|
chosenNode: MinimalNodeEntryEntity | Site | null = null;
|
||||||
folderIdToShow: string | null = null;
|
folderIdToShow: string | null = null;
|
||||||
paginationStrategy: PaginationStrategy;
|
paginationStrategy: PaginationStrategy;
|
||||||
pagination: Pagination;
|
pagination: Pagination;
|
||||||
@@ -288,7 +288,21 @@ export class ContentNodeSelectorComponent implements OnInit {
|
|||||||
* Emit event with the chosen node
|
* Emit event with the chosen node
|
||||||
*/
|
*/
|
||||||
choose(): void {
|
choose(): void {
|
||||||
this.select.next([this.chosenNode]);
|
const entry: any = this.chosenNode;
|
||||||
|
|
||||||
|
if (entry && entry.guid) {
|
||||||
|
const options = {
|
||||||
|
include: ['path', 'properties', 'allowableOperations']
|
||||||
|
};
|
||||||
|
this.apiService.nodesApi.getNode(entry.guid, options)
|
||||||
|
.then(chosenSiteNode => {
|
||||||
|
this.select.next([chosenSiteNode.entry]);
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.select.next([this.chosenNode]);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user