diff --git a/src/app/access-control/group-registry/groups-registry.component.spec.ts b/src/app/access-control/group-registry/groups-registry.component.spec.ts index 9f847faf0b..43c72843e5 100644 --- a/src/app/access-control/group-registry/groups-registry.component.spec.ts +++ b/src/app/access-control/group-registry/groups-registry.component.spec.ts @@ -22,10 +22,7 @@ import { } from '@angular/router'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { provideMockStore } from '@ngrx/store/testing'; -import { - TranslateLoader, - TranslateModule, -} from '@ngx-translate/core'; +import { TranslateModule } from '@ngx-translate/core'; import { Observable, of as observableOf, @@ -59,6 +56,7 @@ import { } from '../../shared/mocks/dso-name.service.mock'; import { RouterMock } from '../../shared/mocks/router.mock'; import { NotificationsService } from '../../shared/notifications/notifications.service'; +import { PaginationComponent } from '../../shared/pagination/pagination.component'; import { createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils'; import { ActivatedRouteStub } from '../../shared/testing/active-router.stub'; import { @@ -72,7 +70,6 @@ import { import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub'; import { PaginationServiceStub } from '../../shared/testing/pagination-service.stub'; import { routeServiceStub } from '../../shared/testing/route-service.stub'; -import { TranslateLoaderMock } from '../../shared/testing/translate-loader.mock'; import { GroupsRegistryComponent } from './groups-registry.component'; describe('GroupsRegistryComponent', () => { @@ -209,12 +206,9 @@ describe('GroupsRegistryComponent', () => { paginationService = new PaginationServiceStub(); return TestBed.configureTestingModule({ imports: [CommonModule, NgbModule, FormsModule, ReactiveFormsModule, BrowserModule, - TranslateModule.forRoot({ - loader: { - provide: TranslateLoader, - useClass: TranslateLoaderMock, - }, - }), GroupsRegistryComponent], + TranslateModule.forRoot(), + GroupsRegistryComponent, + ], providers: [GroupsRegistryComponent, { provide: DSONameService, useValue: new DSONameServiceMock() }, { provide: EPersonDataService, useValue: ePersonDataServiceStub }, @@ -232,6 +226,12 @@ describe('GroupsRegistryComponent', () => { provideMockStore(), ], schemas: [NO_ERRORS_SCHEMA], + }).overrideComponent(GroupsRegistryComponent, { + remove: { + imports: [ + PaginationComponent, + ], + }, }).compileComponents(); })); diff --git a/src/app/access-control/group-registry/groups-registry.component.ts b/src/app/access-control/group-registry/groups-registry.component.ts index d97284488a..dec3dc955d 100644 --- a/src/app/access-control/group-registry/groups-registry.component.ts +++ b/src/app/access-control/group-registry/groups-registry.component.ts @@ -14,10 +14,7 @@ import { ReactiveFormsModule, UntypedFormBuilder, } from '@angular/forms'; -import { - Router, - RouterLink, -} from '@angular/router'; +import { RouterLink } from '@angular/router'; import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule, @@ -149,7 +146,6 @@ export class GroupsRegistryComponent implements OnInit, OnDestroy { private notificationsService: NotificationsService, private formBuilder: UntypedFormBuilder, protected routeService: RouteService, - private router: Router, private authorizationService: AuthorizationDataService, private paginationService: PaginationService, public requestService: RequestService, diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.spec.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.spec.ts index 054dac3218..4c99c117e8 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.spec.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-incoming/admin-notify-incoming.component.spec.ts @@ -2,57 +2,34 @@ import { ComponentFixture, TestBed, } from '@angular/core/testing'; -import { ActivatedRoute } from '@angular/router'; -import { provideMockStore } from '@ngrx/store/testing'; +import { RouterModule } from '@angular/router'; import { TranslateModule } from '@ngx-translate/core'; -import { APP_DATA_SERVICES_MAP } from '../../../../../config/app-config.interface'; -import { RemoteDataBuildService } from '../../../../core/cache/builders/remote-data-build.service'; -import { RequestService } from '../../../../core/data/request.service'; -import { RouteService } from '../../../../core/services/route.service'; -import { HALEndpointService } from '../../../../core/shared/hal-endpoint.service'; -import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service'; import { SEARCH_CONFIG_SERVICE } from '../../../../my-dspace-page/my-dspace-configuration.service'; -import { MockActivatedRoute } from '../../../../shared/mocks/active-router.mock'; -import { getMockRemoteDataBuildService } from '../../../../shared/mocks/remote-data-build.service.mock'; -import { routeServiceStub } from '../../../../shared/testing/route-service.stub'; +import { SearchConfigurationServiceStub } from '../../../../shared/testing/search-configuration-service.stub'; import { AdminNotifyLogsResultComponent } from '../admin-notify-logs-result/admin-notify-logs-result.component'; import { AdminNotifyIncomingComponent } from './admin-notify-incoming.component'; describe('AdminNotifyIncomingComponent', () => { let component: AdminNotifyIncomingComponent; let fixture: ComponentFixture; - let halService: HALEndpointService; - let requestService: RequestService; - let rdbService: RemoteDataBuildService; - + let searchConfigurationService: SearchConfigurationServiceStub; beforeEach(async () => { - rdbService = getMockRemoteDataBuildService(); - halService = jasmine.createSpyObj('halService', { - 'getRootHref': '/api', - }); - requestService = jasmine.createSpyObj('requestService', { - 'generateRequestId': 'client/1234', - 'send': '', - }); + searchConfigurationService = new SearchConfigurationServiceStub(); + await TestBed.configureTestingModule({ - imports: [TranslateModule.forRoot(), AdminNotifyIncomingComponent], - providers: [ - { provide: SEARCH_CONFIG_SERVICE, useValue: SearchConfigurationService }, - { provide: RouteService, useValue: routeServiceStub }, - { provide: ActivatedRoute, useValue: new MockActivatedRoute() }, - { provide: HALEndpointService, useValue: halService }, - { provide: RequestService, useValue: requestService }, - { provide: RemoteDataBuildService, useValue: rdbService }, - { provide: APP_DATA_SERVICES_MAP, useValue: {} }, - provideMockStore({}), + imports: [ + AdminNotifyIncomingComponent, + RouterModule.forRoot([]), + TranslateModule.forRoot(), ], + }).overrideProvider(SEARCH_CONFIG_SERVICE, { + useValue: searchConfigurationService, }).overrideComponent(AdminNotifyIncomingComponent, { remove: { imports: [AdminNotifyLogsResultComponent] }, - }) - .compileComponents(); + }).compileComponents(); fixture = TestBed.createComponent(AdminNotifyIncomingComponent); component = fixture.componentInstance; diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.spec.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.spec.ts index 985e58bfcb..7d99689831 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.spec.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.spec.ts @@ -6,54 +6,41 @@ import { ActivatedRoute, Router, } from '@angular/router'; -import { provideMockStore } from '@ngrx/store/testing'; import { TranslateModule } from '@ngx-translate/core'; -import { APP_DATA_SERVICES_MAP } from '../../../../../config/app-config.interface'; -import { RemoteDataBuildService } from '../../../../core/cache/builders/remote-data-build.service'; -import { ObjectCacheService } from '../../../../core/cache/object-cache.service'; -import { RequestService } from '../../../../core/data/request.service'; -import { RouteService } from '../../../../core/services/route.service'; -import { HALEndpointService } from '../../../../core/shared/hal-endpoint.service'; +import { SEARCH_CONFIG_SERVICE } from '../../../../my-dspace-page/my-dspace-configuration.service'; import { MockActivatedRoute } from '../../../../shared/mocks/active-router.mock'; import { SearchLabelsComponent } from '../../../../shared/search/search-labels/search-labels.component'; import { ThemedSearchComponent } from '../../../../shared/search/themed-search.component'; -import { routeServiceStub } from '../../../../shared/testing/route-service.stub'; import { RouterStub } from '../../../../shared/testing/router.stub'; +import { SearchConfigurationServiceStub } from '../../../../shared/testing/search-configuration-service.stub'; import { AdminNotifyLogsResultComponent } from './admin-notify-logs-result.component'; describe('AdminNotifyLogsResultComponent', () => { let component: AdminNotifyLogsResultComponent; let fixture: ComponentFixture; - let objectCache: ObjectCacheService; - let requestService: RequestService; - let halService: HALEndpointService; - let rdbService: RemoteDataBuildService; + + let searchConfigurationService: SearchConfigurationServiceStub; beforeEach(async () => { + searchConfigurationService = new SearchConfigurationServiceStub(); + await TestBed.configureTestingModule({ imports: [TranslateModule.forRoot(), AdminNotifyLogsResultComponent], providers: [ - { provide: RouteService, useValue: routeServiceStub }, { provide: Router, useValue: new RouterStub() }, { provide: ActivatedRoute, useValue: new MockActivatedRoute() }, - { provide: HALEndpointService, useValue: halService }, - { provide: ObjectCacheService, useValue: objectCache }, - { provide: RequestService, useValue: requestService }, - { provide: APP_DATA_SERVICES_MAP, useValue: {} }, - { provide: RemoteDataBuildService, useValue: rdbService }, - provideMockStore({}), ], - }) - .overrideComponent(AdminNotifyLogsResultComponent, { - remove: { - imports: [ - SearchLabelsComponent, - ThemedSearchComponent, - ], - }, - }) - .compileComponents(); + }).overrideProvider(SEARCH_CONFIG_SERVICE, { + useValue: searchConfigurationService, + }).overrideComponent(AdminNotifyLogsResultComponent, { + remove: { + imports: [ + SearchLabelsComponent, + ThemedSearchComponent, + ], + }, + }).compileComponents(); fixture = TestBed.createComponent(AdminNotifyLogsResultComponent); component = fixture.componentInstance; diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.ts index 33ac2b4cb1..2c6164ecda 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-logs-result/admin-notify-logs-result.component.ts @@ -3,7 +3,6 @@ import { NgIf, } from '@angular/common'; import { - ChangeDetectorRef, Component, Inject, Input, @@ -59,10 +58,11 @@ export class AdminNotifyLogsResultComponent implements OnInit { protected readonly context = Context.CoarNotify; - constructor(@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService, - private router: Router, - private route: ActivatedRoute, - protected cdRef: ChangeDetectorRef) { + constructor( + @Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: SearchConfigurationService, + protected router: Router, + protected route: ActivatedRoute, + ) { } ngOnInit() { diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.spec.ts b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.spec.ts index 0cdb87ac17..7eb19a649b 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.spec.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-logs/admin-notify-outgoing/admin-notify-outgoing.component.spec.ts @@ -2,57 +2,34 @@ import { ComponentFixture, TestBed, } from '@angular/core/testing'; -import { ActivatedRoute } from '@angular/router'; -import { provideMockStore } from '@ngrx/store/testing'; +import { RouterModule } from '@angular/router'; import { TranslateModule } from '@ngx-translate/core'; -import { APP_DATA_SERVICES_MAP } from '../../../../../config/app-config.interface'; -import { RemoteDataBuildService } from '../../../../core/cache/builders/remote-data-build.service'; -import { RequestService } from '../../../../core/data/request.service'; -import { RouteService } from '../../../../core/services/route.service'; -import { HALEndpointService } from '../../../../core/shared/hal-endpoint.service'; -import { SearchConfigurationService } from '../../../../core/shared/search/search-configuration.service'; import { SEARCH_CONFIG_SERVICE } from '../../../../my-dspace-page/my-dspace-configuration.service'; -import { MockActivatedRoute } from '../../../../shared/mocks/active-router.mock'; -import { getMockRemoteDataBuildService } from '../../../../shared/mocks/remote-data-build.service.mock'; -import { routeServiceStub } from '../../../../shared/testing/route-service.stub'; +import { SearchConfigurationServiceStub } from '../../../../shared/testing/search-configuration-service.stub'; import { AdminNotifyLogsResultComponent } from '../admin-notify-logs-result/admin-notify-logs-result.component'; import { AdminNotifyOutgoingComponent } from './admin-notify-outgoing.component'; describe('AdminNotifyOutgoingComponent', () => { let component: AdminNotifyOutgoingComponent; let fixture: ComponentFixture; - let halService: HALEndpointService; - let requestService: RequestService; - let rdbService: RemoteDataBuildService; + let searchConfigurationService: SearchConfigurationServiceStub; beforeEach(async () => { - rdbService = getMockRemoteDataBuildService(); - requestService = jasmine.createSpyObj('requestService', { - 'generateRequestId': 'client/1234', - 'send': '', - }); - halService = jasmine.createSpyObj('halService', { - 'getRootHref': '/api', - }); + searchConfigurationService = new SearchConfigurationServiceStub(); + await TestBed.configureTestingModule({ - imports: [TranslateModule.forRoot()], - providers: [ - { provide: SEARCH_CONFIG_SERVICE, useValue: SearchConfigurationService }, - { provide: APP_DATA_SERVICES_MAP, useValue: {} }, - { provide: RouteService, useValue: routeServiceStub }, - { provide: ActivatedRoute, useValue: new MockActivatedRoute() }, - { provide: HALEndpointService, useValue: halService }, - { provide: RequestService, useValue: requestService }, - { provide: RemoteDataBuildService, useValue: rdbService }, - provideMockStore({}), + imports: [ + AdminNotifyOutgoingComponent, + RouterModule.forRoot([]), + TranslateModule.forRoot(), ], - }) - .overrideComponent(AdminNotifyOutgoingComponent, { - remove: { imports: [AdminNotifyLogsResultComponent] }, - }) - .compileComponents(); + }).overrideProvider(SEARCH_CONFIG_SERVICE, { + useValue: searchConfigurationService, + }).overrideComponent(AdminNotifyOutgoingComponent, { + remove: { imports: [AdminNotifyLogsResultComponent] }, + }).compileComponents(); fixture = TestBed.createComponent(AdminNotifyOutgoingComponent); component = fixture.componentInstance; diff --git a/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.spec.ts b/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.spec.ts index 3bab1ab5bb..02f4f024e8 100644 --- a/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.spec.ts +++ b/src/app/admin/admin-notify-dashboard/admin-notify-search-result/admin-notify-search-result.component.spec.ts @@ -1,29 +1,19 @@ import { DatePipe } from '@angular/common'; -import { NO_ERRORS_SCHEMA } from '@angular/core'; +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed, } from '@angular/core/testing'; -import { ActivatedRoute } from '@angular/router'; +import { RouterModule } from '@angular/router'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; -import { cold } from 'jasmine-marbles'; import { of as observableOf, of, } from 'rxjs'; -import { APP_DATA_SERVICES_MAP } from '../../../../config/app-config.interface'; -import { RemoteDataBuildService } from '../../../core/cache/builders/remote-data-build.service'; -import { ObjectCacheService } from '../../../core/cache/object-cache.service'; -import { RequestService } from '../../../core/data/request.service'; -import { RouteService } from '../../../core/services/route.service'; -import { ConfigurationProperty } from '../../../core/shared/configuration-property.model'; -import { HALEndpointService } from '../../../core/shared/hal-endpoint.service'; import { SearchConfigurationService } from '../../../core/shared/search/search-configuration.service'; import { SEARCH_CONFIG_SERVICE } from '../../../my-dspace-page/my-dspace-configuration.service'; -import { routeServiceStub } from '../../../shared/testing/route-service.stub'; -import { RouterStub } from '../../../shared/testing/router.stub'; import { TruncatableComponent } from '../../../shared/truncatable/truncatable.component'; import { TruncatablePartComponent } from '../../../shared/truncatable/truncatable-part/truncatable-part.component'; import { AdminNotifyDetailModalComponent } from '../admin-notify-detail-modal/admin-notify-detail-modal.component'; @@ -90,76 +80,46 @@ export const mockAdminNotifyMessages = [ describe('AdminNotifySearchResultComponent', () => { let component: AdminNotifySearchResultComponent; let fixture: ComponentFixture; - let objectCache: ObjectCacheService; - let requestService: RequestService; - let halService: HALEndpointService; - let rdbService: RemoteDataBuildService; + let adminNotifyMessageService: AdminNotifyMessagesService; let searchConfigService: SearchConfigurationService; let modalService: NgbModal; - const requestUUID = '34cfed7c-f597-49ef-9cbe-ea351f0023c2'; - const testObject = { - uuid: 'test-property', - name: 'test-property', - values: ['value-1', 'value-2'], - } as ConfigurationProperty; beforeEach(async () => { - halService = jasmine.createSpyObj('halService', { - getEndpoint: cold('a', { a: '' }), - }); adminNotifyMessageService = jasmine.createSpyObj('adminNotifyMessageService', { getDetailedMessages: of(mockAdminNotifyMessages), reprocessMessage: of(mockAdminNotifyMessages), }); - requestService = jasmine.createSpyObj('requestService', { - generateRequestId: requestUUID, - send: true, - }); - rdbService = jasmine.createSpyObj('rdbService', { - buildSingle: cold('a', { - a: { - payload: testObject, - }, - }), - }); - searchConfigService = jasmine.createSpyObj('searchConfigService', { getCurrentConfiguration: of('NOTIFY.outgoing'), }); - objectCache = {} as ObjectCacheService; - await TestBed.configureTestingModule({ - imports: [TranslateModule.forRoot(), AdminNotifySearchResultComponent, AdminNotifyDetailModalComponent], + imports: [ + AdminNotifyDetailModalComponent, + AdminNotifySearchResultComponent, + RouterModule.forRoot([]), + TranslateModule.forRoot(), + ], providers: [ { provide: AdminNotifyMessagesService, useValue: adminNotifyMessageService }, - { provide: RouteService, useValue: routeServiceStub }, - { provide: ActivatedRoute, useValue: new RouterStub() }, - { provide: HALEndpointService, useValue: halService }, - { provide: ObjectCacheService, useValue: objectCache }, - { provide: RequestService, useValue: requestService }, - { provide: RemoteDataBuildService, useValue: rdbService }, - { provide: SEARCH_CONFIG_SERVICE, useValue: searchConfigService }, - { provide: APP_DATA_SERVICES_MAP, useValue: {} }, DatePipe, ], - schemas: [NO_ERRORS_SCHEMA], - }) - .overrideComponent(AdminNotifySearchResultComponent, { - remove: { - imports: [ - TruncatableComponent, - TruncatablePartComponent, - ], - }, - }) - .compileComponents(); + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }).overrideProvider(SEARCH_CONFIG_SERVICE, { + useValue: searchConfigService, + }).overrideComponent(AdminNotifySearchResultComponent, { + remove: { + imports: [ + TruncatableComponent, + TruncatablePartComponent, + ], + }, + }).compileComponents(); fixture = TestBed.createComponent(AdminNotifySearchResultComponent); component = fixture.componentInstance; - component.searchConfigService = searchConfigService; - modalService = (component as any).modalService; + modalService = TestBed.inject(NgbModal); spyOn(modalService, 'open').and.returnValue(Object.assign({ componentInstance: Object.assign({ response: observableOf(true) }) })); fixture.detectChanges(); }); diff --git a/src/app/admin/admin-registries/bitstream-formats/bitstream-formats.component.spec.ts b/src/app/admin/admin-registries/bitstream-formats/bitstream-formats.component.spec.ts index 9ee767cda0..248e60ca4b 100644 --- a/src/app/admin/admin-registries/bitstream-formats/bitstream-formats.component.spec.ts +++ b/src/app/admin/admin-registries/bitstream-formats/bitstream-formats.component.spec.ts @@ -1,38 +1,23 @@ -import { CommonModule } from '@angular/common'; -import { - Component, - NO_ERRORS_SCHEMA, -} from '@angular/core'; +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync, } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; -import { RouterTestingModule } from '@angular/router/testing'; -import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { RouterModule } from '@angular/router'; import { provideMockStore } from '@ngrx/store/testing'; import { TranslateModule } from '@ngx-translate/core'; import { cold, - getTestScheduler, hot, } from 'jasmine-marbles'; -import { - of as observableOf, - of, -} from 'rxjs'; -import { TestScheduler } from 'rxjs/testing'; +import { of as observableOf } from 'rxjs'; -import { APP_DATA_SERVICES_MAP } from '../../../../config/app-config.interface'; import { BitstreamFormatDataService } from '../../../core/data/bitstream-format-data.service'; -import { ConfigurationDataService } from '../../../core/data/configuration-data.service'; -import { GroupDataService } from '../../../core/eperson/group-data.service'; import { PaginationService } from '../../../core/pagination/pagination.service'; import { BitstreamFormat } from '../../../core/shared/bitstream-format.model'; import { BitstreamFormatSupportLevel } from '../../../core/shared/bitstream-format-support-level'; -import { XSRFService } from '../../../core/xsrf/xsrf.service'; -import { HostWindowService } from '../../../shared/host-window.service'; import { NotificationsService } from '../../../shared/notifications/notifications.service'; import { PaginationComponent } from '../../../shared/pagination/pagination.component'; import { @@ -41,7 +26,6 @@ import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$, } from '../../../shared/remote-data.utils'; -import { HostWindowServiceStub } from '../../../shared/testing/host-window-service.stub'; import { NotificationsServiceStub } from '../../../shared/testing/notifications-service.stub'; import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub'; import { createPaginatedList } from '../../../shared/testing/utils.test'; @@ -52,7 +36,6 @@ describe('BitstreamFormatsComponent', () => { let comp: BitstreamFormatsComponent; let fixture: ComponentFixture; let bitstreamFormatService; - let scheduler: TestScheduler; let notificationsServiceStub; let paginationService; @@ -107,8 +90,6 @@ describe('BitstreamFormatsComponent', () => { const initAsync = () => { notificationsServiceStub = new NotificationsServiceStub(); - scheduler = getTestScheduler(); - bitstreamFormatService = jasmine.createSpyObj('bitstreamFormatService', { findAll: observableOf(mockFormatsRD), find: createSuccessfulRemoteDataObject$(mockFormatsList[0]), @@ -120,33 +101,28 @@ describe('BitstreamFormatsComponent', () => { clearBitStreamFormatRequests: observableOf('cleared'), }); - const groupDataService = jasmine.createSpyObj('groupsDataService', { - findListByHref: createSuccessfulRemoteDataObject$(createPaginatedList([])), - getGroupRegistryRouterLink: '', - getUUIDFromString: '', - }); - - - const configurationDataService = jasmine.createSpyObj('ConfigurationDataService', { - findByPropertyName: of({ payload: { value: 'test' } }), - }); - paginationService = new PaginationServiceStub(); TestBed.configureTestingModule({ - imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, BitstreamFormatsComponent, PaginationComponent, EnumKeysPipe], + imports: [ + BitstreamFormatsComponent, + EnumKeysPipe, + RouterModule.forRoot([]), + TranslateModule.forRoot(), + ], providers: [ provideMockStore(), - { provide: APP_DATA_SERVICES_MAP, useValue: {} }, { provide: BitstreamFormatDataService, useValue: bitstreamFormatService }, - { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, { provide: NotificationsService, useValue: notificationsServiceStub }, { provide: PaginationService, useValue: paginationService }, - { provide: GroupDataService, useValue: groupDataService }, - { provide: ConfigurationDataService, useValue: configurationDataService }, - { provide: XSRFService, useValue: {} }, ], - schemas: [NO_ERRORS_SCHEMA], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }).overrideComponent(BitstreamFormatsComponent, { + remove: { + imports: [ + PaginationComponent, + ], + }, }).compileComponents(); }; @@ -251,8 +227,6 @@ describe('BitstreamFormatsComponent', () => { beforeEach(waitForAsync(() => { notificationsServiceStub = new NotificationsServiceStub(); - scheduler = getTestScheduler(); - bitstreamFormatService = jasmine.createSpyObj('bitstreamFormatService', { findAll: observableOf(mockFormatsRD), find: createSuccessfulRemoteDataObject$(mockFormatsList[0]), @@ -264,37 +238,26 @@ describe('BitstreamFormatsComponent', () => { clearBitStreamFormatRequests: observableOf('cleared'), }); - const groupDataService = jasmine.createSpyObj('groupsDataService', { - findListByHref: createSuccessfulRemoteDataObject$(createPaginatedList([])), - getGroupRegistryRouterLink: '', - getUUIDFromString: '', - }); - - const configurationDataService = jasmine.createSpyObj('ConfigurationDataService', { - findByPropertyName: of({ payload: { value: 'test' } }), - }); - paginationService = new PaginationServiceStub(); TestBed.configureTestingModule({ imports: [ - CommonModule, - RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, - BitstreamFormatsComponent, PaginationComponent, EnumKeysPipe], + BitstreamFormatsComponent, + EnumKeysPipe, + PaginationComponent, + RouterModule.forRoot([]), + TranslateModule.forRoot(), + ], providers: [ provideMockStore(), { provide: BitstreamFormatDataService, useValue: bitstreamFormatService }, - { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, { provide: NotificationsService, useValue: notificationsServiceStub }, { provide: PaginationService, useValue: paginationService }, - { provide: GroupDataService, useValue: groupDataService }, - { provide: ConfigurationDataService, useValue: configurationDataService }, ], - schemas: [NO_ERRORS_SCHEMA], + schemas: [CUSTOM_ELEMENTS_SCHEMA], }) .overrideComponent(BitstreamFormatsComponent, { remove: { imports: [PaginationComponent] }, - add: { imports: [TestPaginationComponent] }, }) .compileComponents(); }, @@ -321,8 +284,6 @@ describe('BitstreamFormatsComponent', () => { beforeEach(waitForAsync(() => { notificationsServiceStub = new NotificationsServiceStub(); - scheduler = getTestScheduler(); - bitstreamFormatService = jasmine.createSpyObj('bitstreamFormatService', { findAll: observableOf(mockFormatsRD), find: createSuccessfulRemoteDataObject$(mockFormatsList[0]), @@ -334,35 +295,24 @@ describe('BitstreamFormatsComponent', () => { clearBitStreamFormatRequests: observableOf('cleared'), }); - const groupDataService = jasmine.createSpyObj('groupsDataService', { - findListByHref: createSuccessfulRemoteDataObject$(createPaginatedList([])), - getGroupRegistryRouterLink: '', - getUUIDFromString: '', - }); - - const configurationDataService = jasmine.createSpyObj('ConfigurationDataService', { - findByPropertyName: of({ payload: { value: 'test' } }), - }); - paginationService = new PaginationServiceStub(); TestBed.configureTestingModule({ - imports: [CommonModule, RouterTestingModule.withRoutes([]), TranslateModule.forRoot(), NgbModule, BitstreamFormatsComponent, PaginationComponent, EnumKeysPipe], + imports: [ + BitstreamFormatsComponent, + EnumKeysPipe, + RouterModule.forRoot([]), + TranslateModule.forRoot(), + ], providers: [ - provideMockStore(), { provide: BitstreamFormatDataService, useValue: bitstreamFormatService }, - { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, { provide: NotificationsService, useValue: notificationsServiceStub }, { provide: PaginationService, useValue: paginationService }, - { provide: PaginationService, useValue: paginationService }, - { provide: GroupDataService, useValue: groupDataService }, - { provide: ConfigurationDataService, useValue: configurationDataService }, ], - schemas: [NO_ERRORS_SCHEMA], + schemas: [CUSTOM_ELEMENTS_SCHEMA], }) .overrideComponent(BitstreamFormatsComponent, { remove: { imports: [PaginationComponent] }, - add: { imports: [TestPaginationComponent] }, }) .compileComponents(); }, @@ -384,12 +334,3 @@ describe('BitstreamFormatsComponent', () => { }); }); }); - -@Component({ - exportAs: 'paginationComponent', - selector: 'ds-pagination', - template: ``, - standalone: true, -}) -export class TestPaginationComponent { -} diff --git a/src/app/admin/admin-registries/bitstream-formats/bitstream-formats.component.ts b/src/app/admin/admin-registries/bitstream-formats/bitstream-formats.component.ts index 72739507be..72da2fadfd 100644 --- a/src/app/admin/admin-registries/bitstream-formats/bitstream-formats.component.ts +++ b/src/app/admin/admin-registries/bitstream-formats/bitstream-formats.component.ts @@ -8,10 +8,7 @@ import { OnDestroy, OnInit, } from '@angular/core'; -import { - Router, - RouterLink, -} from '@angular/router'; +import { RouterLink } from '@angular/router'; import { TranslateModule, TranslateService, @@ -74,7 +71,6 @@ export class BitstreamFormatsComponent implements OnInit, OnDestroy { }); constructor(private notificationsService: NotificationsService, - private router: Router, private translateService: TranslateService, private bitstreamFormatService: BitstreamFormatDataService, private paginationService: PaginationService, diff --git a/src/app/core/shared/search/search-configuration.service.spec.ts b/src/app/core/shared/search/search-configuration.service.spec.ts index c820e5bac0..d56ee8f756 100644 --- a/src/app/core/shared/search/search-configuration.service.spec.ts +++ b/src/app/core/shared/search/search-configuration.service.spec.ts @@ -7,6 +7,7 @@ import { } from 'rxjs'; import { map } from 'rxjs/operators'; +import { environment } from '../../../../environments/environment.test'; import { getMockRequestService } from '../../../shared/mocks/request.service.mock'; import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model'; import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils'; @@ -88,7 +89,7 @@ describe('SearchConfigurationService', () => { pageSize: 20, })); - service = new SearchConfigurationService(routeService, paginationService as any, activatedRoute as any, linkService, halService, requestService, rdb); + service = new SearchConfigurationService(routeService, paginationService as any, activatedRoute as any, linkService, halService, requestService, rdb, environment); }); describe('when the scope is called', () => { diff --git a/src/app/core/shared/search/search-configuration.service.ts b/src/app/core/shared/search/search-configuration.service.ts index b128e457f7..b9e0207cc3 100644 --- a/src/app/core/shared/search/search-configuration.service.ts +++ b/src/app/core/shared/search/search-configuration.service.ts @@ -1,4 +1,5 @@ import { + Inject, Injectable, OnDestroy, } from '@angular/core'; @@ -20,6 +21,10 @@ import { take, } from 'rxjs/operators'; +import { + APP_CONFIG, + AppConfig, +} from '../../../../config/app-config.interface'; import { hasNoValue, hasValue, @@ -29,6 +34,7 @@ import { import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model'; import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils'; import { FacetConfigResponse } from '../../../shared/search/models/facet-config-response.model'; +import { FilterType } from '../../../shared/search/models/filter-type.model'; import { PaginatedSearchOptions } from '../../../shared/search/models/paginated-search-options.model'; import { SearchFilter } from '../../../shared/search/models/search-filter.model'; import { SearchFilterConfig } from '../../../shared/search/models/search-filter-config.model'; @@ -56,12 +62,8 @@ import { getFirstSucceededRemoteData, } from '../operators'; import { ViewMode } from '../view-mode.model'; -import { SearchFilterConfig } from '../../../shared/search/models/search-filter-config.model'; -import { FacetConfigResponse } from '../../../shared/search/models/facet-config-response.model'; -import { addOperatorToFilterValue } from '../../../shared/search/search.utils'; -import { FilterConfig } from './search-filters/search-config.model'; -import { FilterType } from '../../../shared/search/models/filter-type.model'; import { + FilterConfig, SearchConfig, SortConfig, } from './search-filters/search-config.model'; @@ -126,24 +128,15 @@ export class SearchConfigurationService implements OnDestroy { */ protected subs: Map = new Map(null); - /** - * Initialize the search options - * @param {RouteService} routeService - * @param {PaginationService} paginationService - * @param {ActivatedRoute} route - * @param linkService - * @param halService - * @param requestService - * @param rdb - */ constructor(protected routeService: RouteService, protected paginationService: PaginationService, protected route: ActivatedRoute, protected linkService: LinkService, protected halService: HALEndpointService, protected requestService: RequestService, - protected rdb: RemoteDataBuildService) { - + protected rdb: RemoteDataBuildService, + @Inject(APP_CONFIG) protected appConfig: AppConfig, + ) { this.initDefaults(); } @@ -297,6 +290,7 @@ export class SearchConfigurationService implements OnDestroy { return this.getConfigurationSearchConfig(configuration, scope).pipe( map((searchConfiguration: SearchConfig) => { return searchConfiguration.filters + .filter((filterConfig: FilterConfig) => this.appConfig.search.advancedFilters.filter.includes(filterConfig.filter)) .filter((filterConfig: FilterConfig) => filterConfig.type !== FilterType.range); }), ); diff --git a/src/app/my-dspace-page/my-dspace-configuration.service.spec.ts b/src/app/my-dspace-page/my-dspace-configuration.service.spec.ts index e7bc422665..fd6096b847 100644 --- a/src/app/my-dspace-page/my-dspace-configuration.service.spec.ts +++ b/src/app/my-dspace-page/my-dspace-configuration.service.spec.ts @@ -4,6 +4,7 @@ import { } from 'jasmine-marbles'; import { of as observableOf } from 'rxjs'; +import { environment } from '../../environments/environment.test'; import { SortDirection, SortOptions, @@ -58,7 +59,7 @@ describe('MyDSpaceConfigurationService', () => { const rdb: any = getMockRemoteDataBuildService(); beforeEach(() => { - service = new MyDSpaceConfigurationService(roleService, spy, paginationService as any, activatedRoute, linkService, halService, requestService, rdb); + service = new MyDSpaceConfigurationService(roleService, spy, paginationService as any, activatedRoute, linkService, halService, requestService, rdb, environment); }); describe('when the scope is called', () => { diff --git a/src/app/my-dspace-page/my-dspace-configuration.service.ts b/src/app/my-dspace-page/my-dspace-configuration.service.ts index 2a324d7e13..9a7f376404 100644 --- a/src/app/my-dspace-page/my-dspace-configuration.service.ts +++ b/src/app/my-dspace-page/my-dspace-configuration.service.ts @@ -1,4 +1,5 @@ import { + Inject, Injectable, InjectionToken, } from '@angular/core'; @@ -12,6 +13,10 @@ import { map, } from 'rxjs/operators'; +import { + APP_CONFIG, + AppConfig, +} from '../../config/app-config.interface'; import { LinkService } from '../core/cache/builders/link.service'; import { RemoteDataBuildService } from '../core/cache/builders/remote-data-build.service'; import { @@ -75,18 +80,6 @@ export class MyDSpaceConfigurationService extends SearchConfigurationService { private isController$: Observable; private isSubmitter$: Observable; - /** - * Initialize class - * - * @param {roleService} roleService - * @param {RouteService} routeService - * @param {PaginationService} paginationService - * @param {ActivatedRoute} route - * @param linkService - * @param halService - * @param requestService - * @param rdb - */ constructor(protected roleService: RoleService, protected routeService: RouteService, protected paginationService: PaginationService, @@ -94,9 +87,19 @@ export class MyDSpaceConfigurationService extends SearchConfigurationService { protected linkService: LinkService, protected halService: HALEndpointService, protected requestService: RequestService, - protected rdb: RemoteDataBuildService) { - - super(routeService, paginationService, route, linkService, halService, requestService, rdb); + protected rdb: RemoteDataBuildService, + @Inject(APP_CONFIG) protected appConfig: AppConfig, + ) { + super( + routeService, + paginationService, + route, + linkService, + halService, + requestService, + rdb, + appConfig, + ); // override parent class initialization this._defaults = null; diff --git a/src/app/shared/search/search-sidebar/search-sidebar.component.spec.ts b/src/app/shared/search/search-sidebar/search-sidebar.component.spec.ts index befa8b25bf..b9c61629fc 100644 --- a/src/app/shared/search/search-sidebar/search-sidebar.component.spec.ts +++ b/src/app/shared/search/search-sidebar/search-sidebar.component.spec.ts @@ -13,15 +13,12 @@ import { TranslateModule } from '@ngx-translate/core'; import { APP_CONFIG } from '../../../../config/app-config.interface'; import { environment } from '../../../../environments/environment.test'; +import { SearchConfigurationService } from '../../../core/shared/search/search-configuration.service'; +import { SearchConfigurationServiceStub } from '../../testing/search-configuration-service.stub'; import { AdvancedSearchComponent } from '../advanced-search/advanced-search.component'; import { ThemedSearchFiltersComponent } from '../search-filters/themed-search-filters.component'; import { ThemedSearchSettingsComponent } from '../search-settings/themed-search-settings.component'; import { SearchSidebarComponent } from './search-sidebar.component'; -import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap'; -import { By } from '@angular/platform-browser'; -import { SearchConfigurationServiceStub } from '../../testing/search-configuration-service.stub'; -import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; -import { SearchConfigurationService } from '../../../core/shared/search/search-configuration.service'; describe('SearchSidebarComponent', () => { let comp: SearchSidebarComponent; @@ -39,23 +36,23 @@ describe('SearchSidebarComponent', () => { SearchSidebarComponent, ], providers: [ - { provide: APP_CONFIG, useValue: environment }, + { provide: SearchConfigurationService, useValue: searchConfigurationService }, ], schemas: [CUSTOM_ELEMENTS_SCHEMA], - }) - .overrideComponent(SearchSidebarComponent, { - remove:{ - imports: [ - AdvancedSearchComponent, - ThemedSearchFiltersComponent, - ThemedSearchSettingsComponent, - ], - }, - add: { - changeDetection: ChangeDetectionStrategy.Default, - }, - }) - .compileComponents(); // compile template and css + }).overrideProvider(APP_CONFIG, { + useValue: environment, + }).overrideComponent(SearchSidebarComponent, { + remove:{ + imports: [ + AdvancedSearchComponent, + ThemedSearchFiltersComponent, + ThemedSearchSettingsComponent, + ], + }, + add: { + changeDetection: ChangeDetectionStrategy.Default, + }, + }).compileComponents(); })); // synchronous beforeEach