diff --git a/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.spec.ts b/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.spec.ts index 7e7ceea0b..b4c6c3d78 100644 --- a/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.spec.ts +++ b/src/app/components/toolbar/toggle-favorite/toggle-favorite.component.spec.ts @@ -23,10 +23,70 @@ * along with Alfresco. If not, see . */ +import { TestBed } from '@angular/core/testing'; import { ToggleFavoriteComponent } from './toggle-favorite.component'; +import { Store } from '@ngrx/store'; +import { ExtensionService } from '@alfresco/adf-extensions'; +import { CoreModule } from '@alfresco/adf-core'; +import { Router } from '@angular/router'; +import { of } from 'rxjs'; describe('ToggleFavoriteComponent', () => { - it('should be defined', () => { - expect(ToggleFavoriteComponent).toBeDefined(); + let component: ToggleFavoriteComponent; + let fixture; + let router; + const mockRouter = { + url: 'some-url' + }; + const mockStore = { + dispatch: jasmine.createSpy('dispatch'), + select: jasmine.createSpy('select').and.returnValue( + of({ + nodes: [] + }) + ) + }; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [CoreModule.forRoot()], + declarations: [ToggleFavoriteComponent], + providers: [ + ExtensionService, + { provide: Store, useValue: mockStore }, + { provide: Router, useValue: mockRouter } + ] + }); + + fixture = TestBed.createComponent(ToggleFavoriteComponent); + component = fixture.componentInstance; + router = TestBed.get(Router); + }); + + afterEach(() => { + mockStore.dispatch.calls.reset(); + }); + + it('should get selection data on initialization', () => { + expect(mockStore.select).toHaveBeenCalled(); + }); + + it('should not dispatch reload if route is not specified', () => { + component.data = "['/reload_on_this_route']"; + + fixture.detectChanges(); + component.onToggleEvent(); + + expect(mockStore.dispatch).not.toHaveBeenCalled(); + }); + + it('should dispatch reload if route is specified', () => { + component.data = "['/reload_on_this_route']"; + router.url = '/reload_on_this_route'; + + fixture.detectChanges(); + component.onToggleEvent(); + + expect(mockStore.dispatch).toHaveBeenCalled(); }); });