Skip to content

Commit cb4a7b3

Browse files
committed
Add missing provider tests
1 parent b8bb3ff commit cb4a7b3

31 files changed

Lines changed: 1298 additions & 307 deletions

src/app/app.menus.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import { RegistriesMenuProvider } from './shared/menu/providers/registries.menu'
2727
import { StatisticsMenuProvider } from './shared/menu/providers/statistics.menu';
2828
import { SystemWideAlertMenuProvider } from './shared/menu/providers/system-wide-alert.menu';
2929
import { WorkflowMenuProvider } from './shared/menu/providers/workflow.menu';
30-
import { DsoOptionMenu } from './shared/menu/providers/dso-option.menu';
30+
import { DsoOptionMenuProvider } from './shared/menu/providers/dso-option.menu';
3131
import { MenuRoute } from './shared/menu/menu-route.model';
3232

3333
export const MENUS = buildMenuStructure({
@@ -51,7 +51,7 @@ export const MENUS = buildMenuStructure({
5151
SystemWideAlertMenuProvider,
5252
],
5353
[MenuID.DSO_EDIT]: [
54-
DsoOptionMenu.withSubs([
54+
DsoOptionMenuProvider.withSubs([
5555
SubscribeMenuProvider.onRoute(
5656
MenuRoute.SIMPLE_COMMUNITY_PAGE,
5757
MenuRoute.SIMPLE_COLLECTION_PAGE,

src/app/shared/menu/menu.structure.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { MenuID } from './menu-id.model';
22
import { CommunityListMenuProvider } from './providers/community-list.menu';
33
import { NewMenuProvider } from './providers/new.menu';
4-
import { DsoOptionMenu } from './providers/dso-option.menu';
4+
import { DsoOptionMenuProvider } from './providers/dso-option.menu';
55
import { SubscribeMenuProvider } from './providers/comcol-subscribe.menu';
66
import { buildMenuStructure } from './menu.structure';
77
import { MenuProviderService } from './menu-provider.service';
@@ -47,7 +47,7 @@ describe('buildMenuStructure', () => {
4747
SystemWideAlertMenuProvider,
4848
],
4949
[MenuID.DSO_EDIT]: [
50-
DsoOptionMenu.withSubs([
50+
DsoOptionMenuProvider.withSubs([
5151
SubscribeMenuProvider.onRoute(
5252
MenuRoute.SIMPLE_COMMUNITY_PAGE,
5353
MenuRoute.SIMPLE_COLLECTION_PAGE
@@ -97,7 +97,7 @@ describe('buildMenuStructure', () => {
9797
VersioningMenuProvider,
9898
OrcidMenuProvider,
9999
ClaimMenuProvider,
100-
DsoOptionMenu,
100+
DsoOptionMenuProvider,
101101
];
102102

103103

src/app/shared/menu/providers/access-control.menu.spec.ts

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,43 +17,43 @@ import { ScriptDataService } from '../../../core/data/processes/script-data.serv
1717
import { ScriptServiceStub } from '../../testing/script-service.stub';
1818
import { PartialMenuSection } from '../menu-provider.model';
1919

20-
const expectedTopSection: PartialMenuSection = {
21-
visible: true,
22-
model: {
23-
type: MenuItemType.TEXT,
24-
text: 'menu.section.access_control',
25-
},
26-
icon: 'key'
27-
};
28-
29-
const expectedSubSections: PartialMenuSection[] = [
30-
{
20+
describe('AccessControlMenuProvider', () => {
21+
const expectedTopSection: PartialMenuSection = {
3122
visible: true,
3223
model: {
33-
type: MenuItemType.LINK,
34-
text: 'menu.section.access_control_people',
35-
link: '/access-control/epeople',
24+
type: MenuItemType.TEXT,
25+
text: 'menu.section.access_control',
3626
},
37-
},
38-
{
39-
visible: false,
40-
model: {
41-
type: MenuItemType.LINK,
42-
text: 'menu.section.access_control_groups',
43-
link: '/access-control/groups',
27+
icon: 'key'
28+
};
29+
30+
const expectedSubSections: PartialMenuSection[] = [
31+
{
32+
visible: true,
33+
model: {
34+
type: MenuItemType.LINK,
35+
text: 'menu.section.access_control_people',
36+
link: '/access-control/epeople',
37+
},
4438
},
45-
},
46-
{
47-
visible: true,
48-
model: {
49-
type: MenuItemType.LINK,
50-
text: 'menu.section.access_control_bulk',
51-
link: '/access-control/bulk-access',
39+
{
40+
visible: false,
41+
model: {
42+
type: MenuItemType.LINK,
43+
text: 'menu.section.access_control_groups',
44+
link: '/access-control/groups',
45+
},
5246
},
53-
},
54-
];
47+
{
48+
visible: true,
49+
model: {
50+
type: MenuItemType.LINK,
51+
text: 'menu.section.access_control_bulk',
52+
link: '/access-control/bulk-access',
53+
},
54+
},
55+
];
5556

56-
describe('AccessControlMenuProvider', () => {
5757
let provider: AccessControlMenuProvider;
5858
let authorizationServiceStub = new AuthorizationDataServiceStub();
5959

@@ -69,8 +69,8 @@ describe('AccessControlMenuProvider', () => {
6969
TestBed.configureTestingModule({
7070
providers: [
7171
AccessControlMenuProvider,
72-
{ provide: AuthorizationDataService, useValue: authorizationServiceStub },
73-
{ provide: ScriptDataService, useClass: ScriptServiceStub },
72+
{provide: AuthorizationDataService, useValue: authorizationServiceStub},
73+
{provide: ScriptDataService, useClass: ScriptServiceStub},
7474
],
7575
});
7676
provider = TestBed.inject(AccessControlMenuProvider);

src/app/shared/menu/providers/admin-search.menu.spec.ts

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,21 @@ import { of as observableOf } from 'rxjs';
1414
import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service';
1515
import { PartialMenuSection } from '../menu-provider.model';
1616

17-
const expectedSections: PartialMenuSection[] = [
18-
{
19-
visible: true,
20-
model: {
21-
type: MenuItemType.LINK,
22-
text: 'menu.section.admin_search',
23-
link: '/admin/search',
17+
describe('AdminSearchMenuProvider', () => {
18+
19+
const expectedSections: PartialMenuSection[] = [
20+
{
21+
visible: true,
22+
model: {
23+
type: MenuItemType.LINK,
24+
text: 'menu.section.admin_search',
25+
link: '/admin/search',
26+
},
27+
icon: 'search',
2428
},
25-
icon: 'search',
26-
},
27-
];
29+
];
30+
2831

29-
describe('AdminSearchMenuProvider', () => {
3032
let provider: AdminSearchMenuProvider;
3133
let authorizationServiceStub = new AuthorizationDataServiceStub();
3234

@@ -38,7 +40,7 @@ describe('AdminSearchMenuProvider', () => {
3840
TestBed.configureTestingModule({
3941
providers: [
4042
AdminSearchMenuProvider,
41-
{ provide: AuthorizationDataService, useValue: authorizationServiceStub },
43+
{provide: AuthorizationDataService, useValue: authorizationServiceStub},
4244
],
4345
});
4446
provider = TestBed.inject(AdminSearchMenuProvider);

src/app/shared/menu/providers/browse.menu.spec.ts

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -18,51 +18,53 @@ import { createSuccessfulRemoteDataObject$ } from '../../remote-data.utils';
1818
import { createPaginatedList } from '../../testing/utils.test';
1919
import { PartialMenuSection } from '../menu-provider.model';
2020

21-
const expectedTopSection: PartialMenuSection = {
22-
visible: true,
23-
model: {
21+
describe('BrowseMenuProvider', () => {
22+
23+
const expectedTopSection: PartialMenuSection = {
24+
visible: true,
25+
model: {
2426
type: MenuItemType.TEXT,
2527
text: 'menu.section.browse_global',
2628
},
2729
icon: 'globe',
2830
};
2931

30-
const expectedSubSections: PartialMenuSection[] = [
31-
{
32-
visible: true,
33-
model: {
34-
type: MenuItemType.LINK,
35-
text: 'menu.section.browse_global_by_author',
36-
link: '/browse/author',
32+
const expectedSubSections: PartialMenuSection[] = [
33+
{
34+
visible: true,
35+
model: {
36+
type: MenuItemType.LINK,
37+
text: 'menu.section.browse_global_by_author',
38+
link: '/browse/author',
39+
},
3740
},
38-
},
39-
{
40-
visible: true,
41-
model: {
42-
type: MenuItemType.LINK,
43-
text: 'menu.section.browse_global_by_subject',
44-
link: '/browse/subject',
41+
{
42+
visible: true,
43+
model: {
44+
type: MenuItemType.LINK,
45+
text: 'menu.section.browse_global_by_subject',
46+
link: '/browse/subject',
47+
},
4548
},
46-
},
47-
];
49+
];
50+
4851

49-
describe('BrowseMenuProvider', () => {
5052
let provider: BrowseMenuProvider;
5153
let browseServiceStub = new BrowseServiceStub();
5254

5355
beforeEach(() => {
5456
spyOn(browseServiceStub, 'getBrowseDefinitions').and.returnValue(
5557
createSuccessfulRemoteDataObject$(createPaginatedList([
56-
{ id: 'author' } as BrowseDefinition,
57-
{ id: 'subject' } as BrowseDefinition,
58+
{id: 'author'} as BrowseDefinition,
59+
{id: 'subject'} as BrowseDefinition,
5860
]))
5961
);
6062

6163
TestBed.configureTestingModule({
6264
providers: [
6365
BrowseMenuProvider,
64-
{ provide: BrowseService, useValue: browseServiceStub },
65-
{ provide: ObjectCacheService, useValue: getMockObjectCacheService() },
66+
{provide: BrowseService, useValue: browseServiceStub},
67+
{provide: ObjectCacheService, useValue: getMockObjectCacheService()},
6668
],
6769
});
6870
provider = TestBed.inject(BrowseMenuProvider);
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import { PartialMenuSection } from '../menu-provider.model';
2+
import { MenuItemType } from '../menu-item-type.model';
3+
import { TestBed } from '@angular/core/testing';
4+
import { of as observableOf } from 'rxjs';
5+
import { AuthorizationDataService } from '../../../core/data/feature-authorization/authorization-data.service';
6+
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
7+
import { SubscribeMenuProvider } from './comcol-subscribe.menu';
8+
import { Collection } from '../../../core/shared/collection.model';
9+
10+
describe('SubscribeMenuProvider', () => {
11+
12+
const expectedSections: PartialMenuSection[] = [
13+
{
14+
visible: true,
15+
model: {
16+
type: MenuItemType.ONCLICK,
17+
text: 'subscriptions.tooltip',
18+
function: jasmine.any(Function) as any,
19+
},
20+
icon: 'bell',
21+
}
22+
];
23+
24+
let provider: SubscribeMenuProvider;
25+
26+
const dso: Collection = Object.assign(new Collection(), {_links: {self: {href: 'self-link'}}});
27+
28+
29+
let authorizationService;
30+
let modalService;
31+
32+
beforeEach(() => {
33+
34+
authorizationService = jasmine.createSpyObj('authorizationService', {
35+
'isAuthorized': observableOf(true)
36+
});
37+
38+
modalService = jasmine.createSpyObj('modalService', ['open']);
39+
40+
TestBed.configureTestingModule({
41+
providers: [
42+
SubscribeMenuProvider,
43+
{provide: AuthorizationDataService, useValue: authorizationService},
44+
{provide: NgbModal, useValue: modalService},
45+
],
46+
});
47+
provider = TestBed.inject(SubscribeMenuProvider);
48+
});
49+
50+
it('should be created', () => {
51+
expect(provider).toBeTruthy();
52+
});
53+
54+
describe('getSectionsForContext', () => {
55+
it('should return the expected sections', (done) => {
56+
provider.getSectionsForContext(dso).subscribe((sections) => {
57+
expect(sections).toEqual(expectedSections);
58+
done();
59+
});
60+
});
61+
});
62+
63+
64+
});

src/app/shared/menu/providers/community-list.menu.spec.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ import { CommunityListMenuProvider } from './community-list.menu';
1111
import { MenuItemType } from '../menu-item-type.model';
1212
import { PartialMenuSection } from '../menu-provider.model';
1313

14-
const expectedSections: PartialMenuSection[] = [
15-
{
16-
visible: true,
17-
model: {
18-
type: MenuItemType.LINK,
19-
text: `menu.section.browse_global_communities_and_collections`,
20-
link: `/community-list`,
14+
describe('CommunityListMenuProvider', () => {
15+
const expectedSections: PartialMenuSection[] = [
16+
{
17+
visible: true,
18+
model: {
19+
type: MenuItemType.LINK,
20+
text: `menu.section.browse_global_communities_and_collections`,
21+
link: `/community-list`,
22+
},
23+
icon: 'diagram-project'
2124
},
22-
icon: 'diagram-project'
23-
},
24-
];
25+
];
2526

26-
describe('CommunityListMenuProvider', () => {
2727
let provider: CommunityListMenuProvider;
2828

2929
beforeEach(() => {

src/app/shared/menu/providers/curation.menu.spec.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,19 @@ import { AuthorizationDataService } from '../../../core/data/feature-authorizati
1414
import { CurationMenuProvider } from './curation.menu';
1515
import { PartialMenuSection } from '../menu-provider.model';
1616

17-
const expectedSections: PartialMenuSection[] = [
18-
{
19-
visible: true,
20-
model: {
21-
type: MenuItemType.LINK,
22-
text: 'menu.section.curation_task',
23-
link: 'admin/curation-tasks',
17+
describe('CurationMenuProvider', () => {
18+
const expectedSections: PartialMenuSection[] = [
19+
{
20+
visible: true,
21+
model: {
22+
type: MenuItemType.LINK,
23+
text: 'menu.section.curation_task',
24+
link: 'admin/curation-tasks',
25+
},
26+
icon: 'filter',
2427
},
25-
icon: 'filter',
26-
},
27-
];
28+
];
2829

29-
describe('CurationMenuProvider', () => {
3030
let provider: CurationMenuProvider;
3131
let authorizationServiceStub = new AuthorizationDataServiceStub();
3232

@@ -38,7 +38,7 @@ describe('CurationMenuProvider', () => {
3838
TestBed.configureTestingModule({
3939
providers: [
4040
CurationMenuProvider,
41-
{ provide: AuthorizationDataService, useValue: authorizationServiceStub },
41+
{provide: AuthorizationDataService, useValue: authorizationServiceStub},
4242
],
4343
});
4444
provider = TestBed.inject(CurationMenuProvider);

0 commit comments

Comments
 (0)