import { CommentsTabComponent } from './comments-tab.component' ; import { ComponentFixture , TestBed } from '@angular/core/testing' ; import { AppTestingModule } from '../../../testing/app-testing.module' ; import { NodePermissionService } from '@alfresco/aca-shared' ; import { Node } from '@alfresco/js-api' ; import { CommentsModule } from '@alfresco/adf-core' ; describe ( 'CommentsTabComponent' , ( ) => { let component ; let fixture ; let nodePermissionService ; let checked ; beforeEach ( ( ) => { TestBed . configureTestingModule ( { imports : [ AppTestingModule , CommentsModule ] , declarations : [ CommentsTabComponent ] } ) ; nodePermissionService = TestBed . inject ( NodePermissionService ) ; fixture = TestBed . createComponent ( CommentsTabComponent ) ; component = fixture . componentInstance ; checked = null ; spyOn ( nodePermissionService , 'check' ) . and . callFake ( ( _source , permissions ) => { checked = permissions ; return true ; } ) ; } ) ; afterEach ( ( ) => { fixture . destroy ( ) ; } ) ; describe ( 'canUpdateNode' , ( ) => { it ( 'should return [false] if no node selected' , ( ) => { component . node = null ; expect ( component . canUpdateNode ) . toBe ( false ) ; } ) ; it ( 'should return [false] if node selected is neither file or folder' , ( ) => { component . node = { id : 'test-node-id' , isFile : false , isFolder : false } as Node ; expect ( component . canUpdateNode ) . toBe ( false ) ; } ) ; it ( 'should return [false] if node selected is a locked file' , ( ) => { component . node = { id : 'test-node-id' , isFile : true , isFolder : false , isLocked : true } as Node ; expect ( component . canUpdateNode ) . toBe ( false ) ; } ) ; it ( 'should check [update] permission if node selected is a not locked file' , ( ) => { component . node = { id : 'test-node-id' , isFile : true , isFolder : false } as Node ; expect ( component . canUpdateNode ) . toBe ( true ) ; expect ( checked ) . toContain ( 'update' ) ; } ) ; it ( 'should check [update] permission if node selected is a folder' , ( ) => { component . node = { id : 'test-node-id' , isFile : false , isFolder : true } as Node ; expect ( component . canUpdateNode ) . toBe ( true ) ; expect ( checked ) . toContain ( 'update' ) ; } ) ; } ) ; } ) ;