mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-14 13:33:03 +00:00
101623: Fix browse-related tests by replacing abstract class
This commit is contained in:
@@ -2,8 +2,8 @@ import { first } from 'rxjs/operators';
|
||||
import { BrowseByGuard } from './browse-by-guard';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
import { createSuccessfulRemoteDataObject$ } from '../shared/remote-data.utils';
|
||||
import { BrowseDefinition } from '../core/shared/browse-definition.model';
|
||||
import { BrowseByDataType } from './browse-by-switcher/browse-by-decorator';
|
||||
import { ValueListBrowseDefinition } from '../core/shared/value-list-browse-definition.model';
|
||||
|
||||
describe('BrowseByGuard', () => {
|
||||
describe('canActivate', () => {
|
||||
@@ -18,7 +18,7 @@ describe('BrowseByGuard', () => {
|
||||
const id = 'author';
|
||||
const scope = '1234-65487-12354-1235';
|
||||
const value = 'Filter';
|
||||
const browseDefinition = Object.assign(new BrowseDefinition(), { type: BrowseByDataType.Metadata, metadataKeys: ['dc.contributor'] });
|
||||
const browseDefinition = Object.assign(new ValueListBrowseDefinition(), { type: BrowseByDataType.Metadata, metadataKeys: ['dc.contributor'] });
|
||||
|
||||
beforeEach(() => {
|
||||
dsoService = {
|
||||
|
@@ -3,9 +3,11 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { BROWSE_BY_COMPONENT_FACTORY, BrowseByDataType } from './browse-by-decorator';
|
||||
import { BrowseDefinition } from '../../core/shared/browse-definition.model';
|
||||
import { BehaviorSubject } from 'rxjs';
|
||||
import { ThemeService } from '../../shared/theme-support/theme.service';
|
||||
import { FlatBrowseDefinition } from '../../core/shared/flat-browse-definition.model';
|
||||
import { ValueListBrowseDefinition } from '../../core/shared/value-list-browse-definition.model';
|
||||
import { NonHierarchicalBrowseDefinition } from '../../core/shared/non-hierarchical-browse-definition';
|
||||
|
||||
describe('BrowseBySwitcherComponent', () => {
|
||||
let comp: BrowseBySwitcherComponent;
|
||||
@@ -13,33 +15,33 @@ describe('BrowseBySwitcherComponent', () => {
|
||||
|
||||
const types = [
|
||||
Object.assign(
|
||||
new BrowseDefinition(), {
|
||||
new FlatBrowseDefinition(), {
|
||||
id: 'title',
|
||||
dataType: BrowseByDataType.Title,
|
||||
}
|
||||
),
|
||||
Object.assign(
|
||||
new BrowseDefinition(), {
|
||||
new FlatBrowseDefinition(), {
|
||||
id: 'dateissued',
|
||||
dataType: BrowseByDataType.Date,
|
||||
metadataKeys: ['dc.date.issued']
|
||||
}
|
||||
),
|
||||
Object.assign(
|
||||
new BrowseDefinition(), {
|
||||
new ValueListBrowseDefinition(), {
|
||||
id: 'author',
|
||||
dataType: BrowseByDataType.Metadata,
|
||||
}
|
||||
),
|
||||
Object.assign(
|
||||
new BrowseDefinition(), {
|
||||
new ValueListBrowseDefinition(), {
|
||||
id: 'subject',
|
||||
dataType: BrowseByDataType.Metadata,
|
||||
}
|
||||
),
|
||||
];
|
||||
|
||||
const data = new BehaviorSubject(createDataWithBrowseDefinition(new BrowseDefinition()));
|
||||
const data = new BehaviorSubject(createDataWithBrowseDefinition(new FlatBrowseDefinition()));
|
||||
|
||||
const activatedRouteStub = {
|
||||
data
|
||||
@@ -70,7 +72,7 @@ describe('BrowseBySwitcherComponent', () => {
|
||||
comp = fixture.componentInstance;
|
||||
}));
|
||||
|
||||
types.forEach((type: BrowseDefinition) => {
|
||||
types.forEach((type: NonHierarchicalBrowseDefinition) => {
|
||||
describe(`when switching to a browse-by page for "${type.id}"`, () => {
|
||||
beforeEach(() => {
|
||||
data.next(createDataWithBrowseDefinition(type));
|
||||
|
@@ -4,17 +4,36 @@ import { BrowseByTaxonomyPageComponent } from './browse-by-taxonomy-page.compone
|
||||
import { VocabularyEntryDetail } from '../../core/submission/vocabularies/models/vocabulary-entry-detail.model';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { BehaviorSubject } from 'rxjs';
|
||||
import { createDataWithBrowseDefinition } from '../browse-by-switcher/browse-by-switcher.component.spec';
|
||||
import { HierarchicalBrowseDefinition } from '../../core/shared/hierarchical-browse-definition.model';
|
||||
import { ThemeService } from '../../shared/theme-support/theme.service';
|
||||
|
||||
describe('BrowseByTaxonomyPageComponent', () => {
|
||||
let component: BrowseByTaxonomyPageComponent;
|
||||
let fixture: ComponentFixture<BrowseByTaxonomyPageComponent>;
|
||||
let themeService: ThemeService;
|
||||
let detail1: VocabularyEntryDetail;
|
||||
let detail2: VocabularyEntryDetail;
|
||||
|
||||
const data = new BehaviorSubject(createDataWithBrowseDefinition(new HierarchicalBrowseDefinition()));
|
||||
const activatedRouteStub = {
|
||||
data
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
themeService = jasmine.createSpyObj('themeService', {
|
||||
getThemeName: 'dspace',
|
||||
});
|
||||
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [ TranslateModule.forRoot() ],
|
||||
declarations: [ BrowseByTaxonomyPageComponent ],
|
||||
providers: [
|
||||
{ provide: ActivatedRoute, useValue: activatedRouteStub },
|
||||
{ provide: ThemeService, useValue: themeService },
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
})
|
||||
.compileComponents();
|
||||
|
@@ -6,13 +6,15 @@ import { getMockRequestService } from '../../shared/mocks/request.service.mock';
|
||||
import { HALEndpointServiceStub } from '../../shared/testing/hal-endpoint-service.stub';
|
||||
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
|
||||
import { RequestService } from '../data/request.service';
|
||||
import { BrowseDefinition } from '../shared/browse-definition.model';
|
||||
import { BrowseEntrySearchOptions } from './browse-entry-search-options.model';
|
||||
import { BrowseService } from './browse.service';
|
||||
import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
|
||||
import { createPaginatedList, getFirstUsedArgumentOfSpyMethod } from '../../shared/testing/utils.test';
|
||||
import { getMockHrefOnlyDataService } from '../../shared/mocks/href-only-data.service.mock';
|
||||
import { RequestEntry } from '../data/request-entry.model';
|
||||
import { FlatBrowseDefinition } from '../shared/flat-browse-definition.model';
|
||||
import { ValueListBrowseDefinition } from '../shared/value-list-browse-definition.model';
|
||||
import { HierarchicalBrowseDefinition } from '../shared/hierarchical-browse-definition.model';
|
||||
|
||||
describe('BrowseService', () => {
|
||||
let scheduler: TestScheduler;
|
||||
@@ -23,7 +25,7 @@ describe('BrowseService', () => {
|
||||
const browsesEndpointURL = 'https://rest.api/browses';
|
||||
const halService: any = new HALEndpointServiceStub(browsesEndpointURL);
|
||||
const browseDefinitions = [
|
||||
Object.assign(new BrowseDefinition(), {
|
||||
Object.assign(new FlatBrowseDefinition(), {
|
||||
id: 'date',
|
||||
metadataBrowse: false,
|
||||
sortOptions: [
|
||||
@@ -50,7 +52,7 @@ describe('BrowseService', () => {
|
||||
items: { href: 'https://rest.api/discover/browses/dateissued/items' }
|
||||
}
|
||||
}),
|
||||
Object.assign(new BrowseDefinition(), {
|
||||
Object.assign(new ValueListBrowseDefinition(), {
|
||||
id: 'author',
|
||||
metadataBrowse: true,
|
||||
sortOptions: [
|
||||
@@ -78,7 +80,23 @@ describe('BrowseService', () => {
|
||||
entries: { href: 'https://rest.api/discover/browses/author/entries' },
|
||||
items: { href: 'https://rest.api/discover/browses/author/items' }
|
||||
}
|
||||
})
|
||||
}),
|
||||
Object.assign(new HierarchicalBrowseDefinition(), {
|
||||
id: 'srsc',
|
||||
browseType: 'hierarchicalBrowse',
|
||||
facetType: 'subject',
|
||||
vocabulary: 'srsc',
|
||||
type: 'browse',
|
||||
metadata: [
|
||||
'dc.subject'
|
||||
],
|
||||
_links: {
|
||||
vocabulary: { 'href': 'https://rest.api/submission/vocabularies/srsc/' },
|
||||
items: { 'href': 'https://rest.api/discover/browses/srsc/items' },
|
||||
entries: { 'href': 'https://rest.api/discover/browses/srsc/entries' },
|
||||
self: { 'href': 'https://rest.api/discover/browses/srsc' }
|
||||
}
|
||||
}),
|
||||
];
|
||||
|
||||
let browseDefinitionDataService;
|
||||
|
@@ -16,7 +16,6 @@ import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { BrowseService } from '../core/browse/browse.service';
|
||||
import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../shared/remote-data.utils';
|
||||
import { buildPaginatedList } from '../core/data/paginated-list.model';
|
||||
import { BrowseDefinition } from '../core/shared/browse-definition.model';
|
||||
import { BrowseByDataType } from '../browse-by/browse-by-switcher/browse-by-decorator';
|
||||
import { Item } from '../core/shared/item.model';
|
||||
import { AuthorizationDataService } from '../core/data/feature-authorization/authorization-data.service';
|
||||
@@ -28,6 +27,9 @@ import { authReducer } from '../core/auth/auth.reducer';
|
||||
import { provideMockStore } from '@ngrx/store/testing';
|
||||
import { AuthTokenInfo } from '../core/auth/models/auth-token-info.model';
|
||||
import { EPersonMock } from '../shared/testing/eperson.mock';
|
||||
import { FlatBrowseDefinition } from '../core/shared/flat-browse-definition.model';
|
||||
import { ValueListBrowseDefinition } from '../core/shared/value-list-browse-definition.model';
|
||||
import { HierarchicalBrowseDefinition } from '../core/shared/hierarchical-browse-definition.model';
|
||||
|
||||
let comp: NavbarComponent;
|
||||
let fixture: ComponentFixture<NavbarComponent>;
|
||||
@@ -66,30 +68,35 @@ describe('NavbarComponent', () => {
|
||||
beforeEach(waitForAsync(() => {
|
||||
browseDefinitions = [
|
||||
Object.assign(
|
||||
new BrowseDefinition(), {
|
||||
new FlatBrowseDefinition(), {
|
||||
id: 'title',
|
||||
dataType: BrowseByDataType.Title,
|
||||
}
|
||||
),
|
||||
Object.assign(
|
||||
new BrowseDefinition(), {
|
||||
new FlatBrowseDefinition(), {
|
||||
id: 'dateissued',
|
||||
dataType: BrowseByDataType.Date,
|
||||
metadataKeys: ['dc.date.issued']
|
||||
}
|
||||
),
|
||||
Object.assign(
|
||||
new BrowseDefinition(), {
|
||||
new ValueListBrowseDefinition(), {
|
||||
id: 'author',
|
||||
dataType: BrowseByDataType.Metadata,
|
||||
}
|
||||
),
|
||||
Object.assign(
|
||||
new BrowseDefinition(), {
|
||||
new ValueListBrowseDefinition(), {
|
||||
id: 'subject',
|
||||
dataType: BrowseByDataType.Metadata,
|
||||
}
|
||||
),
|
||||
Object.assign(
|
||||
new HierarchicalBrowseDefinition(), {
|
||||
id: 'srsc',
|
||||
}
|
||||
),
|
||||
];
|
||||
initialState = {
|
||||
core: {
|
||||
|
Reference in New Issue
Block a user