Skip to content

Commit

Permalink
[ADF-5316] - fix unit test - final
Browse files Browse the repository at this point in the history
  • Loading branch information
Vito Albano committed Feb 1, 2021
1 parent e56fc27 commit 7906fbf
Show file tree
Hide file tree
Showing 5 changed files with 155 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,14 @@ import { setupTestBed, AllowableOperationsEnum } from '@alfresco/adf-core';
import { ContentTestingModule } from '../../../testing/content.testing.module';
import { SimpleChange } from '@angular/core';
import { TranslateModule } from '@ngx-translate/core';
import { ContentMetadataService } from '../../services/content-metadata.service';
import { of } from 'rxjs';

describe('ContentMetadataCardComponent', () => {

let component: ContentMetadataCardComponent;
let fixture: ComponentFixture<ContentMetadataCardComponent>;
let contentMetadataService: ContentMetadataService;
let node: Node;
const preset = 'custom-preset';

Expand All @@ -41,6 +44,7 @@ describe('ContentMetadataCardComponent', () => {

beforeEach(() => {
fixture = TestBed.createComponent(ContentMetadataCardComponent);
contentMetadataService = TestBed.inject(ContentMetadataService);
component = fixture.componentInstance;
node = <Node> {
aspectNames: [],
Expand All @@ -53,6 +57,7 @@ describe('ContentMetadataCardComponent', () => {

component.node = node;
component.preset = preset;
spyOn(contentMetadataService, 'getNodeType').and.returnValue(of([]));
fixture.detectChanges();
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ describe('ContentMetadataComponent', () => {
fixture.detectChanges();
}));

it('should open the confirm dialgo when content type is changed', fakeAsync(async () => {
it('should open the confirm dialog when content type is changed', fakeAsync(() => {
component.editable = true;
const property = <CardViewBaseItemModel> { key: 'nodeType', value: 'ft:sbiruli' };
const expectedNode = Object.assign({}, node, { nodeType: 'ft:sbiruli' });
Expand All @@ -184,11 +184,11 @@ describe('ContentMetadataComponent', () => {
tick(600);

fixture.detectChanges();
await fixture.whenStable();
tick(100);
const saveButton = fixture.debugElement.query(By.css('[data-automation-id="save-metadata"]'));
saveButton.nativeElement.click();

await fixture.whenStable();
tick(100);
expect(component.node).toEqual(expectedNode);
expect(contentMetadataService.openConfirmDialog).toHaveBeenCalledWith({nodeType: 'ft:poppoli'});
expect(nodesApiService.updateNode).toHaveBeenCalled();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
import { AlfrescoApiService, AppConfigService, setupTestBed } from '@alfresco/adf-core';
import { ClassesApi, Node } from '@alfresco/js-api';
import { TestBed } from '@angular/core/testing';
import { ContentTestingModule } from '../../testing/content.testing.module';
import { ContentMetadataService } from './content-metadata.service';
import { of } from 'rxjs';
import { PropertyGroup } from '../interfaces/property-group.interface';
import { TranslateModule } from '@ngx-translate/core';
import { ContentTypePropertiesService } from './content-type-property.service';
import { ContentTestingModule } from '../../testing/content.testing.module';

describe('ContentMetaDataService', () => {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,22 @@ import { TestBed } from '@angular/core/testing';
import { ContentMetadataService } from './content-metadata.service';
import { of } from 'rxjs';
import { ContentTypePropertiesService } from './content-type-property.service';
import { setupTestBed } from 'core';
import { ContentTestingModule } from '../../testing/content.testing.module';
import { TranslateModule } from '@ngx-translate/core';

describe('ContentMetaDataService', () => {

let service: ContentMetadataService;
let contentPropertyService: ContentTypePropertiesService;

setupTestBed({
imports: [
TranslateModule.forRoot(),
ContentTestingModule
]
});

beforeEach(() => {
service = TestBed.inject(ContentMetadataService);
contentPropertyService = TestBed.inject(ContentTypePropertiesService);
Expand Down
145 changes: 136 additions & 9 deletions lib/content-services/src/lib/content-type/content-type.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,154 @@
*/

import { Injectable } from '@angular/core';
import { AlfrescoApiService } from 'core';
import { from, Observable } from 'rxjs';
import { map } from 'rxjs/operators';
import { Observable, of } from 'rxjs';
import { ContentTypeModelEntry } from './content-type.model';

const elementContent: ContentTypeModelEntry = {
entry: {
id: 'cm:content',
title: 'Content',
description: 'Binary Content',
parent: 'cm:object',
archive: 'true',
properties: [
{
dataType: 'd:content',
defaultValue: '',
id: 'd:content',
isMandatory: false,
isMandatoryEnforced: false,
isMultiValued: false,
isProtected: false,
title: 'Content'
},
{
dataType: 'd:text',
defaultValue: '',
id: 'cm:name',
isMandatory: false,
isMandatoryEnforced: false,
isMultiValued: false,
isProtected: false,
title: 'PropertyA'
}
]
}
};

const elementFolder: ContentTypeModelEntry = {
entry: {
id: 'cm:folder',
title: 'Folder',
description: 'Basic Folder',
parent: 'cm:object',
archive: 'true',
properties: [
{
dataType: 'd:text',
defaultValue: '',
id: 'cm:name',
isMandatory: false,
isMandatoryEnforced: false,
isMultiValued: false,
isProtected: false,
title: 'PropertyA'
},
{
dataType: 'd:text',
defaultValue: '',
id: 'cm:name2',
isMandatory: false,
isMandatoryEnforced: false,
isMultiValued: false,
isProtected: false,
title: 'PropertyB'
},
{
dataType: 'd:text',
defaultValue: '',
id: 'cm:name3',
isMandatory: false,
isMandatoryEnforced: false,
isMultiValued: false,
isProtected: false,
title: 'PropertyC'
}
]
}
};

const elementCustom: ContentTypeModelEntry = {
entry: {
id: 'ck:pippobaudo',
title: 'PIPPO-BAUDO',
description: 'Doloro reaepgfihawpefih peahfa powfj p[qwofhjaq[ fq[owfj[qowjf[qowfgh[qowh f[qowhfj [qwohf',
parent: 'cm:content',
properties: [
{
dataType: 'ck:propA',
defaultValue: 'HERE I AM',
description: 'A property',
facetable: 'FALSE',
indexTokenisationMode: 'TRUE',
indexed: true,
isMandatory: false,
isMandatoryEnforced: false,
isMultiValued: false,
title: 'PropertyA'
},
{
dataType: 'ck:propB',
defaultValue: 'HERE I AM',
description: 'A property',
facetable: 'FALSE',
indexTokenisationMode: 'TRUE',
indexed: true,
isMandatory: false,
isMandatoryEnforced: false,
isMultiValued: false,
title: 'PropertyB'
},
{
dataType: 'ck:propC',
defaultValue: 'HERE I AM',
description: 'A property',
facetable: 'FALSE',
indexTokenisationMode: 'TRUE',
indexed: true,
isMandatory: false,
isMandatoryEnforced: false,
isMultiValued: false,
title: 'PropertyC'
}
]
}
};

const customTypes: Map<string, ContentTypeModelEntry> = new Map([['cm:content', elementContent], ['cm:folder', elementFolder], ['ck:pippobaudo', elementCustom]]);

@Injectable({
providedIn: 'root'
})
export class ContentTypeService {

constructor(private apiService: AlfrescoApiService) {
constructor() {
}

getContentTypeByPrefix(prefixedType: string): Observable<ContentTypeModelEntry> {
return from(this.apiService.customModelApi.getCustomType(prefixedType));
if (prefixedType) {
return of(customTypes.get(prefixedType));
} else {
return of(null);
}
}

getContentTypeChildren(nodeType: string): Observable<ContentTypeModelEntry[]> {
return from(this.apiService.customModelApi.getAllCustomType(nodeType))
.pipe(map((result) => {
return result.list.entries;
}));
if (nodeType) {
return of([elementContent, elementFolder, elementCustom]);
} else {
return of([]);
}

}
}

0 comments on commit 7906fbf

Please sign in to comment.