import { ToggleSharedComponent } from './toggle-shared.component' ; import { of } from 'rxjs' ; describe ( 'ToggleSharedComponent' , ( ) => { let component ; let entry ; const storeMock = { select : ( ) => of ( { first : { entry } } ) , dispatch : jasmine . createSpy ( 'dispatch' ) } ; beforeEach ( ( ) => { entry = { properties : { 'qshare:sharedId' : null } } ; component = new ToggleSharedComponent ( storeMock ) ; } ) ; it ( 'should get Store selection entry on initialization' , ( done ) => { component . ngOnInit ( ) ; component . selection$ . subscribe ( ( selection ) => { expect ( selection . first . entry ) . toEqual ( entry ) ; done ( ) ; } ) ; } ) ; it ( 'should return false when entry is not shared' , ( ) => { component . ngOnInit ( ) ; expect ( component . isShared ( { first : { entry } } ) ) . toBe ( false ) ; } ) ; it ( 'should return true when entry is shared' , ( ) => { entry . properties [ 'qshare:sharedId' ] = 'some-id' ; component . ngOnInit ( ) ; expect ( component . isShared ( { first : { entry } } ) ) . toBe ( true ) ; } ) ; it ( 'should dispatch `SHARE_NODE` action on share' , ( ) => { component . ngOnInit ( ) ; component . editSharedNode ( { first : { entry } } ) ; expect ( storeMock . dispatch ) . toHaveBeenCalled ( ) ; } ) ; it ( 'should get action label for unshared file' , ( ) => { component . ngOnInit ( ) ; const label = component . getLabel ( { first : { entry } } ) ; expect ( label ) . toBe ( 'APP.ACTIONS.SHARE' ) ; } ) ; it ( 'should get action label for shared file' , ( ) => { entry . properties [ 'qshare:sharedId' ] = 'some-id' ; component . ngOnInit ( ) ; const label = component . getLabel ( { first : { entry } } ) ; expect ( label ) . toBe ( 'APP.ACTIONS.SHARE_EDIT' ) ; } ) ; } ) ;