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