mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
76922: Add unit tests for ConfigurationSearchPageComponent
This commit is contained in:
@@ -2,20 +2,63 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|||||||
import { configureSearchComponentTestingModule } from './search.component.spec';
|
import { configureSearchComponentTestingModule } from './search.component.spec';
|
||||||
import { ConfigurationSearchPageComponent } from './configuration-search-page.component';
|
import { ConfigurationSearchPageComponent } from './configuration-search-page.component';
|
||||||
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
|
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
|
||||||
|
import { Component, ViewChild } from '@angular/core';
|
||||||
|
import { Router } from '@angular/router';
|
||||||
|
import { RouteService } from '../core/services/route.service';
|
||||||
|
import createSpy = jasmine.createSpy;
|
||||||
|
|
||||||
|
const CONFIGURATION = 'test-configuration';
|
||||||
|
const QUERY = 'test query';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
template: `
|
||||||
|
<ds-configuration-search-page [configuration]="'${CONFIGURATION}'"
|
||||||
|
[fixedFilterQuery]="'${QUERY}'"
|
||||||
|
#configurationSearchPage>
|
||||||
|
</ds-configuration-search-page>
|
||||||
|
`,
|
||||||
|
})
|
||||||
|
class HostComponent {
|
||||||
|
@ViewChild('configurationSearchPage') configurationSearchPage: ConfigurationSearchPageComponent;
|
||||||
|
}
|
||||||
|
|
||||||
describe('ConfigurationSearchPageComponent', () => {
|
describe('ConfigurationSearchPageComponent', () => {
|
||||||
let comp: ConfigurationSearchPageComponent;
|
let comp: ConfigurationSearchPageComponent;
|
||||||
let fixture: ComponentFixture<ConfigurationSearchPageComponent>;
|
let fixture: ComponentFixture<HostComponent>;
|
||||||
let searchConfigService: SearchConfigurationService;
|
let searchConfigService: SearchConfigurationService;
|
||||||
|
let routeService: RouteService;
|
||||||
|
|
||||||
beforeEach(waitForAsync(() => {
|
beforeEach(waitForAsync(() => {
|
||||||
configureSearchComponentTestingModule(ConfigurationSearchPageComponent);
|
configureSearchComponentTestingModule(ConfigurationSearchPageComponent, [HostComponent]);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
fixture = TestBed.createComponent(ConfigurationSearchPageComponent);
|
fixture = TestBed.createComponent(HostComponent);
|
||||||
comp = fixture.componentInstance;
|
|
||||||
searchConfigService = (comp as any).searchConfigService;
|
// Set router url to a dummy value for SearchComponent#ngOnInit
|
||||||
|
spyOnProperty(TestBed.inject(Router), 'url', 'get').and.returnValue('some/url/here');
|
||||||
|
|
||||||
|
routeService = TestBed.inject(RouteService);
|
||||||
|
routeService.setParameter = createSpy('setParameter');
|
||||||
|
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
|
|
||||||
|
comp = fixture.componentInstance.configurationSearchPage;
|
||||||
|
searchConfigService = (comp as any).searchConfigService;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should set route parameters on init', () => {
|
||||||
|
expect(comp.configuration).toBe(CONFIGURATION);
|
||||||
|
expect(comp.fixedFilterQuery).toBe(QUERY);
|
||||||
|
|
||||||
|
expect(routeService.setParameter).toHaveBeenCalledWith('configuration', CONFIGURATION);
|
||||||
|
expect(routeService.setParameter).toHaveBeenCalledWith('fixedFilterQuery', QUERY);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should reset route parameters on destroy', () => {
|
||||||
|
fixture.destroy();
|
||||||
|
|
||||||
|
expect(routeService.setParameter).toHaveBeenCalledWith('configuration', undefined);
|
||||||
|
expect(routeService.setParameter).toHaveBeenCalledWith('fixedFilterQuery', undefined);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@@ -84,10 +84,10 @@ const routeServiceStub = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export function configureSearchComponentTestingModule(compType) {
|
export function configureSearchComponentTestingModule(compType, additionalDeclarations: any[] = []) {
|
||||||
TestBed.configureTestingModule({
|
TestBed.configureTestingModule({
|
||||||
imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), NoopAnimationsModule, NgbCollapseModule],
|
imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), NoopAnimationsModule, NgbCollapseModule],
|
||||||
declarations: [compType],
|
declarations: [compType, ...additionalDeclarations],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: SearchService, useValue: searchServiceStub },
|
{ provide: SearchService, useValue: searchServiceStub },
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user