Files
dspace-angular/src/app/browse-by/browse-by-page/browse-by-page.component.spec.ts
2024-03-14 12:55:09 +01:00

74 lines
2.5 KiB
TypeScript

// eslint-disable-next-line max-classes-per-file
import { Component } from '@angular/core';
import {
ComponentFixture,
TestBed,
} from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { ActivatedRoute } from '@angular/router';
import { BrowseDefinition } from '../../core/shared/browse-definition.model';
import { DynamicComponentLoaderDirective } from '../../shared/abstract-component-loader/dynamic-component-loader.directive';
import { getMockThemeService } from '../../shared/mocks/theme-service.mock';
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
import { ThemeService } from '../../shared/theme-support/theme.service';
import { BrowseByDataType } from '../browse-by-switcher/browse-by-data-type';
import { BrowseBySwitcherComponent } from '../browse-by-switcher/browse-by-switcher.component';
import { BrowseByPageComponent } from './browse-by-page.component';
@Component({
// eslint-disable-next-line @angular-eslint/component-selector
selector: '',
template: '<span id="BrowseByTestComponent"></span>',
})
class BrowseByTestComponent {
}
class TestBrowseByPageBrowseDefinition extends BrowseDefinition {
getRenderType(): BrowseByDataType {
return 'BrowseByPageComponent' as BrowseByDataType;
}
}
describe('BrowseByPageComponent', () => {
let component: BrowseByPageComponent;
let fixture: ComponentFixture<BrowseByPageComponent>;
let activatedRoute: ActivatedRouteStub;
let themeService: ThemeService;
beforeEach(async () => {
activatedRoute = new ActivatedRouteStub();
themeService = getMockThemeService();
await TestBed.configureTestingModule({
imports: [BrowseBySwitcherComponent, BrowseByPageComponent, DynamicComponentLoaderDirective],
providers: [
BrowseByTestComponent,
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: ThemeService, useValue: themeService },
],
})
.overrideComponent(BrowseByPageComponent, {
remove: {
imports: [BrowseBySwitcherComponent],
},
})
.compileComponents();
fixture = TestBed.createComponent(BrowseByPageComponent);
component = fixture.componentInstance;
});
it('should create the correct browse section based on the route browseDefinition', () => {
activatedRoute.testData = {
browseDefinition: new TestBrowseByPageBrowseDefinition(),
};
fixture.detectChanges();
expect(component).toBeTruthy();
expect(fixture.debugElement.query(By.css('#BrowseByTestComponent'))).not.toBeNull();
});
});