Skip to content

Commit 2f0f697

Browse files
committed
101623: Fix browse-related tests by replacing abstract class
1 parent d9b0eeb commit 2f0f697

5 files changed

Lines changed: 64 additions & 18 deletions

File tree

src/app/browse-by/browse-by-guard.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { first } from 'rxjs/operators';
22
import { BrowseByGuard } from './browse-by-guard';
33
import { of as observableOf } from 'rxjs';
44
import { createSuccessfulRemoteDataObject$ } from '../shared/remote-data.utils';
5-
import { BrowseDefinition } from '../core/shared/browse-definition.model';
65
import { BrowseByDataType } from './browse-by-switcher/browse-by-decorator';
6+
import { ValueListBrowseDefinition } from '../core/shared/value-list-browse-definition.model';
77

88
describe('BrowseByGuard', () => {
99
describe('canActivate', () => {
@@ -18,7 +18,7 @@ describe('BrowseByGuard', () => {
1818
const id = 'author';
1919
const scope = '1234-65487-12354-1235';
2020
const value = 'Filter';
21-
const browseDefinition = Object.assign(new BrowseDefinition(), { type: BrowseByDataType.Metadata, metadataKeys: ['dc.contributor'] });
21+
const browseDefinition = Object.assign(new ValueListBrowseDefinition(), { type: BrowseByDataType.Metadata, metadataKeys: ['dc.contributor'] });
2222

2323
beforeEach(() => {
2424
dsoService = {

src/app/browse-by/browse-by-switcher/browse-by-switcher.component.spec.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,45 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
33
import { NO_ERRORS_SCHEMA } from '@angular/core';
44
import { ActivatedRoute } from '@angular/router';
55
import { BROWSE_BY_COMPONENT_FACTORY, BrowseByDataType } from './browse-by-decorator';
6-
import { BrowseDefinition } from '../../core/shared/browse-definition.model';
76
import { BehaviorSubject } from 'rxjs';
87
import { ThemeService } from '../../shared/theme-support/theme.service';
8+
import { FlatBrowseDefinition } from '../../core/shared/flat-browse-definition.model';
9+
import { ValueListBrowseDefinition } from '../../core/shared/value-list-browse-definition.model';
10+
import { NonHierarchicalBrowseDefinition } from '../../core/shared/non-hierarchical-browse-definition';
911

1012
describe('BrowseBySwitcherComponent', () => {
1113
let comp: BrowseBySwitcherComponent;
1214
let fixture: ComponentFixture<BrowseBySwitcherComponent>;
1315

1416
const types = [
1517
Object.assign(
16-
new BrowseDefinition(), {
18+
new FlatBrowseDefinition(), {
1719
id: 'title',
1820
dataType: BrowseByDataType.Title,
1921
}
2022
),
2123
Object.assign(
22-
new BrowseDefinition(), {
24+
new FlatBrowseDefinition(), {
2325
id: 'dateissued',
2426
dataType: BrowseByDataType.Date,
2527
metadataKeys: ['dc.date.issued']
2628
}
2729
),
2830
Object.assign(
29-
new BrowseDefinition(), {
31+
new ValueListBrowseDefinition(), {
3032
id: 'author',
3133
dataType: BrowseByDataType.Metadata,
3234
}
3335
),
3436
Object.assign(
35-
new BrowseDefinition(), {
37+
new ValueListBrowseDefinition(), {
3638
id: 'subject',
3739
dataType: BrowseByDataType.Metadata,
3840
}
3941
),
4042
];
4143

42-
const data = new BehaviorSubject(createDataWithBrowseDefinition(new BrowseDefinition()));
44+
const data = new BehaviorSubject(createDataWithBrowseDefinition(new FlatBrowseDefinition()));
4345

4446
const activatedRouteStub = {
4547
data
@@ -70,7 +72,7 @@ describe('BrowseBySwitcherComponent', () => {
7072
comp = fixture.componentInstance;
7173
}));
7274

73-
types.forEach((type: BrowseDefinition) => {
75+
types.forEach((type: NonHierarchicalBrowseDefinition) => {
7476
describe(`when switching to a browse-by page for "${type.id}"`, () => {
7577
beforeEach(() => {
7678
data.next(createDataWithBrowseDefinition(type));

src/app/browse-by/browse-by-taxonomy-page/browse-by-taxonomy-page.component.spec.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,36 @@ import { BrowseByTaxonomyPageComponent } from './browse-by-taxonomy-page.compone
44
import { VocabularyEntryDetail } from '../../core/submission/vocabularies/models/vocabulary-entry-detail.model';
55
import { TranslateModule } from '@ngx-translate/core';
66
import { NO_ERRORS_SCHEMA } from '@angular/core';
7+
import { ActivatedRoute } from '@angular/router';
8+
import { BehaviorSubject } from 'rxjs';
9+
import { createDataWithBrowseDefinition } from '../browse-by-switcher/browse-by-switcher.component.spec';
10+
import { HierarchicalBrowseDefinition } from '../../core/shared/hierarchical-browse-definition.model';
11+
import { ThemeService } from '../../shared/theme-support/theme.service';
712

813
describe('BrowseByTaxonomyPageComponent', () => {
914
let component: BrowseByTaxonomyPageComponent;
1015
let fixture: ComponentFixture<BrowseByTaxonomyPageComponent>;
16+
let themeService: ThemeService;
1117
let detail1: VocabularyEntryDetail;
1218
let detail2: VocabularyEntryDetail;
1319

20+
const data = new BehaviorSubject(createDataWithBrowseDefinition(new HierarchicalBrowseDefinition()));
21+
const activatedRouteStub = {
22+
data
23+
};
24+
1425
beforeEach(async () => {
26+
themeService = jasmine.createSpyObj('themeService', {
27+
getThemeName: 'dspace',
28+
});
29+
1530
await TestBed.configureTestingModule({
1631
imports: [ TranslateModule.forRoot() ],
1732
declarations: [ BrowseByTaxonomyPageComponent ],
33+
providers: [
34+
{ provide: ActivatedRoute, useValue: activatedRouteStub },
35+
{ provide: ThemeService, useValue: themeService },
36+
],
1837
schemas: [NO_ERRORS_SCHEMA]
1938
})
2039
.compileComponents();

src/app/core/browse/browse.service.spec.ts

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ import { getMockRequestService } from '../../shared/mocks/request.service.mock';
66
import { HALEndpointServiceStub } from '../../shared/testing/hal-endpoint-service.stub';
77
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
88
import { RequestService } from '../data/request.service';
9-
import { BrowseDefinition } from '../shared/browse-definition.model';
109
import { BrowseEntrySearchOptions } from './browse-entry-search-options.model';
1110
import { BrowseService } from './browse.service';
1211
import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
1312
import { createPaginatedList, getFirstUsedArgumentOfSpyMethod } from '../../shared/testing/utils.test';
1413
import { getMockHrefOnlyDataService } from '../../shared/mocks/href-only-data.service.mock';
1514
import { RequestEntry } from '../data/request-entry.model';
15+
import { FlatBrowseDefinition } from '../shared/flat-browse-definition.model';
16+
import { ValueListBrowseDefinition } from '../shared/value-list-browse-definition.model';
17+
import { HierarchicalBrowseDefinition } from '../shared/hierarchical-browse-definition.model';
1618

1719
describe('BrowseService', () => {
1820
let scheduler: TestScheduler;
@@ -23,7 +25,7 @@ describe('BrowseService', () => {
2325
const browsesEndpointURL = 'https://rest.api/browses';
2426
const halService: any = new HALEndpointServiceStub(browsesEndpointURL);
2527
const browseDefinitions = [
26-
Object.assign(new BrowseDefinition(), {
28+
Object.assign(new FlatBrowseDefinition(), {
2729
id: 'date',
2830
metadataBrowse: false,
2931
sortOptions: [
@@ -50,7 +52,7 @@ describe('BrowseService', () => {
5052
items: { href: 'https://rest.api/discover/browses/dateissued/items' }
5153
}
5254
}),
53-
Object.assign(new BrowseDefinition(), {
55+
Object.assign(new ValueListBrowseDefinition(), {
5456
id: 'author',
5557
metadataBrowse: true,
5658
sortOptions: [
@@ -78,7 +80,23 @@ describe('BrowseService', () => {
7880
entries: { href: 'https://rest.api/discover/browses/author/entries' },
7981
items: { href: 'https://rest.api/discover/browses/author/items' }
8082
}
81-
})
83+
}),
84+
Object.assign(new HierarchicalBrowseDefinition(), {
85+
id: 'srsc',
86+
browseType: 'hierarchicalBrowse',
87+
facetType: 'subject',
88+
vocabulary: 'srsc',
89+
type: 'browse',
90+
metadata: [
91+
'dc.subject'
92+
],
93+
_links: {
94+
vocabulary: { 'href': 'https://rest.api/submission/vocabularies/srsc/' },
95+
items: { 'href': 'https://rest.api/discover/browses/srsc/items' },
96+
entries: { 'href': 'https://rest.api/discover/browses/srsc/entries' },
97+
self: { 'href': 'https://rest.api/discover/browses/srsc' }
98+
}
99+
}),
82100
];
83101

84102
let browseDefinitionDataService;

src/app/navbar/navbar.component.spec.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import { RouterTestingModule } from '@angular/router/testing';
1616
import { BrowseService } from '../core/browse/browse.service';
1717
import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../shared/remote-data.utils';
1818
import { buildPaginatedList } from '../core/data/paginated-list.model';
19-
import { BrowseDefinition } from '../core/shared/browse-definition.model';
2019
import { BrowseByDataType } from '../browse-by/browse-by-switcher/browse-by-decorator';
2120
import { Item } from '../core/shared/item.model';
2221
import { AuthorizationDataService } from '../core/data/feature-authorization/authorization-data.service';
@@ -28,6 +27,9 @@ import { authReducer } from '../core/auth/auth.reducer';
2827
import { provideMockStore } from '@ngrx/store/testing';
2928
import { AuthTokenInfo } from '../core/auth/models/auth-token-info.model';
3029
import { EPersonMock } from '../shared/testing/eperson.mock';
30+
import { FlatBrowseDefinition } from '../core/shared/flat-browse-definition.model';
31+
import { ValueListBrowseDefinition } from '../core/shared/value-list-browse-definition.model';
32+
import { HierarchicalBrowseDefinition } from '../core/shared/hierarchical-browse-definition.model';
3133

3234
let comp: NavbarComponent;
3335
let fixture: ComponentFixture<NavbarComponent>;
@@ -66,30 +68,35 @@ describe('NavbarComponent', () => {
6668
beforeEach(waitForAsync(() => {
6769
browseDefinitions = [
6870
Object.assign(
69-
new BrowseDefinition(), {
71+
new FlatBrowseDefinition(), {
7072
id: 'title',
7173
dataType: BrowseByDataType.Title,
7274
}
7375
),
7476
Object.assign(
75-
new BrowseDefinition(), {
77+
new FlatBrowseDefinition(), {
7678
id: 'dateissued',
7779
dataType: BrowseByDataType.Date,
7880
metadataKeys: ['dc.date.issued']
7981
}
8082
),
8183
Object.assign(
82-
new BrowseDefinition(), {
84+
new ValueListBrowseDefinition(), {
8385
id: 'author',
8486
dataType: BrowseByDataType.Metadata,
8587
}
8688
),
8789
Object.assign(
88-
new BrowseDefinition(), {
90+
new ValueListBrowseDefinition(), {
8991
id: 'subject',
9092
dataType: BrowseByDataType.Metadata,
9193
}
9294
),
95+
Object.assign(
96+
new HierarchicalBrowseDefinition(), {
97+
id: 'srsc',
98+
}
99+
),
93100
];
94101
initialState = {
95102
core: {

0 commit comments

Comments
 (0)