Merge remote-tracking branch '4scienceGithub/DURACOM-191' into DURACOM-191

This commit is contained in:
Giuseppe Digilio
2024-03-14 14:12:01 +01:00
40 changed files with 214 additions and 59 deletions

View File

@@ -23,6 +23,7 @@ import {
createSuccessfulRemoteDataObject$,
} from '../../shared/remote-data.utils';
import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub';
import { FileDropzoneNoUploaderComponent } from '../../shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component';
import { FileValueAccessorDirective } from '../../shared/utils/file-value-accessor.directive';
import { FileValidator } from '../../shared/utils/require-file.validator';
import { BatchImportPageComponent } from './batch-import-page.component';
@@ -67,7 +68,13 @@ describe('BatchImportPageComponent', () => {
{ provide: Location, useValue: locationStub },
],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
})
.overrideComponent(BatchImportPageComponent, {
remove: {
imports: [FileDropzoneNoUploaderComponent],
},
})
.compileComponents();
}));
beforeEach(() => {

View File

@@ -3,7 +3,6 @@ import { Observable } from 'rxjs';
import { RemoteDataBuildService } from '../../../core/cache/builders/remote-data-build.service';
import { ObjectCacheService } from '../../../core/cache/object-cache.service';
import { dataService } from '../../../core/data/base/data-service.decorator';
import {
FindAllData,
FindAllDataImpl,
@@ -16,14 +15,12 @@ import { RequestService } from '../../../core/data/request.service';
import { HALEndpointService } from '../../../core/shared/hal-endpoint.service';
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model';
import { LDN_SERVICE_CONSTRAINT_FILTERS } from '../ldn-services-model/ldn-service.resource-type';
import { Itemfilter } from '../ldn-services-model/ldn-service-itemfilters';
/**
* A service responsible for fetching/sending data from/to the REST API on the itemfilters endpoint
*/
@Injectable({ providedIn: 'root' })
@dataService(LDN_SERVICE_CONSTRAINT_FILTERS)
export class LdnItemfiltersService extends IdentifiableDataService<Itemfilter> implements FindAllData<Itemfilter> {
private findAllData: FindAllDataImpl<Itemfilter>;

View File

@@ -13,7 +13,6 @@ import {
CreateData,
CreateDataImpl,
} from '../../../core/data/base/create-data';
import { dataService } from '../../../core/data/base/data-service.decorator';
import {
DeleteData,
DeleteDataImpl,
@@ -42,7 +41,6 @@ import { URLCombiner } from '../../../core/url-combiner/url-combiner';
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model';
import { LdnServiceConstrain } from '../ldn-services-model/ldn-service.constrain.model';
import { LDN_SERVICE } from '../ldn-services-model/ldn-service.resource-type';
import { LdnService } from '../ldn-services-model/ldn-services.model';
/**
@@ -57,7 +55,6 @@ import { LdnService } from '../ldn-services-model/ldn-services.model';
* @implements {CreateData<LdnService>}
*/
@Injectable({ providedIn: 'root' })
@dataService(LDN_SERVICE)
export class LdnServicesService extends IdentifiableDataService<LdnService> implements FindAllData<LdnService>, DeleteData<LdnService>, PatchData<LdnService>, CreateData<LdnService> {
createData: CreateDataImpl<LdnService>;
private findAllData: FindAllDataImpl<LdnService>;

View File

@@ -20,13 +20,18 @@ import { PaginatedList } from '../../../core/data/paginated-list.model';
import { RemoteData } from '../../../core/data/remote-data';
import { PaginationService } from '../../../core/pagination/pagination.service';
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import { PaginationComponent } from '../../../shared/pagination/pagination.component';
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
import { NotificationsServiceStub } from '../../../shared/testing/notifications-service.stub';
import { PaginationServiceStub } from '../../../shared/testing/pagination-service.stub';
import { createPaginatedList } from '../../../shared/testing/utils.test';
import { TruncatableComponent } from '../../../shared/truncatable/truncatable.component';
import { TruncatablePartComponent } from '../../../shared/truncatable/truncatable-part/truncatable-part.component';
import { LdnServicesService } from '../ldn-services-data/ldn-services-data.service';
import { LdnService } from '../ldn-services-model/ldn-services.model';
import { LdnServicesOverviewComponent } from './ldn-services-directory.component';
import { ActivatedRoute } from '@angular/router';
import { ActivatedRouteStub } from '../../../shared/testing/active-router.stub';
describe('LdnServicesOverviewComponent', () => {
let component: LdnServicesOverviewComponent;
@@ -67,9 +72,20 @@ describe('LdnServicesOverviewComponent', () => {
{ provide: ChangeDetectorRef, useValue: {} },
{ provide: NotificationsService, useValue: new NotificationsServiceStub() },
{ provide: TranslateService, useValue: translateServiceStub },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
})
.overrideComponent(LdnServicesOverviewComponent, {
remove: {
imports: [
PaginationComponent,
TruncatableComponent,
TruncatablePartComponent,
],
},
})
.compileComponents();
});
beforeEach(() => {
@@ -107,11 +123,9 @@ describe('LdnServicesOverviewComponent', () => {
component.ldnServicesRD$ = createSuccessfulRemoteDataObject$(mockLdnServicesRD);
fixture.detectChanges();
const tableRows = fixture.debugElement.nativeElement.querySelectorAll('tbody tr');
expect(tableRows.length).toBe(testData.length);
const firstRowContent = tableRows[0].textContent;
expect(firstRowContent).toContain('Service 1');
expect(firstRowContent).toContain('Description 1');
component.ldnServicesRD$.subscribe((rd) => {
expect(rd.payload.page).toEqual(mockLdnServicesRD.page);
});
}));
});

View File

@@ -39,8 +39,7 @@ describe('AdminNotifyDashboardComponent', () => {
results = buildPaginatedList(undefined, [searchResult1, searchResult2, searchResult3]);
await TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), NgbNavModule],
declarations: [AdminNotifyDashboardComponent],
imports: [TranslateModule.forRoot(), NgbNavModule, AdminNotifyDashboardComponent],
providers: [{ provide: SearchService, useValue: { search: () => createSuccessfulRemoteDataObject$(results) } }],
})
.compileComponents();

View File

@@ -15,8 +15,7 @@ describe('AdminNotifyDetailModalComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [TranslateModule.forRoot()],
declarations: [AdminNotifyDetailModalComponent],
imports: [TranslateModule.forRoot(), AdminNotifyDetailModalComponent],
providers: [{ provide: NgbActiveModal, useValue: modalStub }],
})
.compileComponents();

View File

@@ -36,8 +36,7 @@ describe('AdminNotifyIncomingComponent', () => {
'send': '',
});
await TestBed.configureTestingModule({
imports: [TranslateModule.forRoot()],
declarations: [AdminNotifyIncomingComponent],
imports: [TranslateModule.forRoot(), AdminNotifyIncomingComponent],
providers: [
{ provide: SEARCH_CONFIG_SERVICE, useValue: SearchConfigurationService },
{ provide: RouteService, useValue: routeServiceStub },

View File

@@ -18,6 +18,8 @@ import { MockActivatedRoute } from '../../../../shared/mocks/active-router.mock'
import { routeServiceStub } from '../../../../shared/testing/route-service.stub';
import { RouterStub } from '../../../../shared/testing/router.stub';
import { AdminNotifyLogsResultComponent } from './admin-notify-logs-result.component';
import { SearchLabelsComponent } from '../../../../shared/search/search-labels/search-labels.component';
import { ThemedSearchComponent } from '../../../../shared/search/themed-search.component';
describe('AdminNotifyLogsResultComponent', () => {
let component: AdminNotifyLogsResultComponent;
@@ -29,8 +31,7 @@ describe('AdminNotifyLogsResultComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [TranslateModule.forRoot()],
declarations: [AdminNotifyLogsResultComponent],
imports: [TranslateModule.forRoot(), AdminNotifyLogsResultComponent],
providers: [
{ provide: RouteService, useValue: routeServiceStub },
{ provide: Router, useValue: new RouterStub() },
@@ -42,6 +43,14 @@ describe('AdminNotifyLogsResultComponent', () => {
provideMockStore({}),
],
})
.overrideComponent(AdminNotifyLogsResultComponent, {
remove: {
imports: [
SearchLabelsComponent,
ThemedSearchComponent,
],
},
})
.compileComponents();
fixture = TestBed.createComponent(AdminNotifyLogsResultComponent);

View File

@@ -15,6 +15,7 @@ import { SEARCH_CONFIG_SERVICE } from '../../../../my-dspace-page/my-dspace-conf
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 { AdminNotifyLogsResultComponent } from '../admin-notify-logs-result/admin-notify-logs-result.component';
import { AdminNotifyOutgoingComponent } from './admin-notify-outgoing.component';
describe('AdminNotifyOutgoingComponent', () => {
@@ -46,6 +47,9 @@ describe('AdminNotifyOutgoingComponent', () => {
provideMockStore({}),
],
})
.overrideComponent(AdminNotifyOutgoingComponent, {
remove: { imports: [AdminNotifyLogsResultComponent] },
})
.compileComponents();
fixture = TestBed.createComponent(AdminNotifyOutgoingComponent);

View File

@@ -15,7 +15,6 @@ import {
import { RemoteDataBuildService } from '../../../core/cache/builders/remote-data-build.service';
import { ObjectCacheService } from '../../../core/cache/object-cache.service';
import { dataService } from '../../../core/data/base/data-service.decorator';
import { IdentifiableDataService } from '../../../core/data/base/identifiable-data.service';
import { ItemDataService } from '../../../core/data/item-data.service';
import { PostRequest } from '../../../core/data/request.models';
@@ -29,7 +28,6 @@ import {
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import { LdnServicesService } from '../../admin-ldn-services/ldn-services-data/ldn-services-data.service';
import { AdminNotifyMessage } from '../models/admin-notify-message.model';
import { ADMIN_NOTIFY_MESSAGE } from '../models/admin-notify-message.resource-type';
/**
* Injectable service responsible for fetching/sending data from/to the REST API on the messages' endpoint.
@@ -39,7 +37,6 @@ import { ADMIN_NOTIFY_MESSAGE } from '../models/admin-notify-message.resource-ty
* @extends {IdentifiableDataService<AdminNotifyMessage>}
*/
@Injectable({ providedIn: 'root' })
@dataService(ADMIN_NOTIFY_MESSAGE)
export class AdminNotifyMessagesService extends IdentifiableDataService<AdminNotifyMessage> {
protected reprocessEndpoint = 'enqueueretry';

View File

@@ -48,7 +48,13 @@ describe('BrowseByPageComponent', () => {
{ provide: ActivatedRoute, useValue: activatedRoute },
{ provide: ThemeService, useValue: themeService },
],
}).compileComponents();
})
.overrideComponent(BrowseByPageComponent, {
remove: {
imports: [BrowseBySwitcherComponent],
},
})
.compileComponents();
fixture = TestBed.createComponent(BrowseByPageComponent);
component = fixture.componentInstance;

View File

@@ -1,7 +1,9 @@
import { TestBed } from '@angular/core/testing';
import { ActivatedRoute } from '@angular/router';
import { of } from 'rxjs';
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
import { ActivatedRouteStub } from '../../../shared/testing/active-router.stub';
import { ConfigurationDataService } from '../../data/configuration-data.service';
import { AuthorizationDataService } from '../../data/feature-authorization/authorization-data.service';
import { NotifyInfoService } from './notify-info.service';
@@ -22,6 +24,7 @@ describe('NotifyInfoService', () => {
NotifyInfoService,
{ provide: ConfigurationDataService, useValue: configurationDataService },
{ provide: AuthorizationDataService, useValue: authorizationDataService },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
});
service = TestBed.inject(NotifyInfoService);

View File

@@ -4,20 +4,17 @@ import { Observable } from 'rxjs';
import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
import { ObjectCacheService } from '../cache/object-cache.service';
import { dataService } from '../data/base/data-service.decorator';
import { RemoteData } from '../data/remote-data';
import { RequestService } from '../data/request.service';
import { HALEndpointService } from '../shared/hal-endpoint.service';
import { ConfigDataService } from './config-data.service';
import { ConfigObject } from './models/config.model';
import { SubmissionFormsModel } from './models/config-submission-forms.model';
import { SUBMISSION_FORMS_TYPE } from './models/config-type';
/**
* Data service to retrieve submission form configuration objects from the REST server.
*/
@Injectable({ providedIn: 'root' })
@dataService(SUBMISSION_FORMS_TYPE)
export class SubmissionFormsConfigDataService extends ConfigDataService {
constructor(
protected requestService: RequestService,

View File

@@ -1,9 +1,17 @@
import { LazyDataServicesMap } from '../../config/app-config.interface';
import {
LDN_SERVICE,
LDN_SERVICE_CONSTRAINT_FILTERS,
} from '../admin/admin-ldn-services/ldn-services-model/ldn-service.resource-type';
import { ADMIN_NOTIFY_MESSAGE } from '../admin/admin-notify-dashboard/models/admin-notify-message.resource-type';
import { NOTIFYREQUEST } from '../item-page/simple/notify-requests-status/notify-requests-status.resource-type';
import { PROCESS } from '../process-page/processes/process.resource-type';
import { SCRIPT } from '../process-page/scripts/script.resource-type';
import { ACCESS_STATUS } from '../shared/object-collection/shared/badges/access-status-badge/access-status.resource-type';
import { DUPLICATE } from '../shared/object-list/duplicate-data/duplicate.resource-type';
import { IDENTIFIERS } from '../shared/object-list/identifier-data/identifier-data.resource-type';
import { SUBSCRIPTION } from '../shared/subscriptions/models/subscription.resource-type';
import { SUBMISSION_COAR_NOTIFY_CONFIG } from '../submission/sections/section-coar-notify/section-coar-notify-service.resource-type';
import { SYSTEMWIDEALERT } from '../system-wide-alert/system-wide-alert.resource-type';
import {
BULK_ACCESS_CONDITION_OPTIONS,
@@ -19,6 +27,11 @@ import { WORKSPACEITEM } from './eperson/models/workspaceitem.resource-type';
import { FEEDBACK } from './feedback/models/feedback.resource-type';
import { METADATA_FIELD } from './metadata/metadata-field.resource-type';
import { METADATA_SCHEMA } from './metadata/metadata-schema.resource-type';
import { SUGGESTION_SOURCE } from './notifications/models/suggestion-source-object.resource-type';
import { SUGGESTION_TARGET } from './notifications/models/suggestion-target-object.resource-type';
import { QUALITY_ASSURANCE_EVENT_OBJECT } from './notifications/qa/models/quality-assurance-event-object.resource-type';
import { QUALITY_ASSURANCE_SOURCE_OBJECT } from './notifications/qa/models/quality-assurance-source-object.resource-type';
import { QUALITY_ASSURANCE_TOPIC_OBJECT } from './notifications/qa/models/quality-assurance-topic-object.resource-type';
import { ORCID_HISTORY } from './orcid/model/orcid-history.resource-type';
import { ORCID_QUEUE } from './orcid/model/orcid-queue.resource-type';
import { RESEARCHER_PROFILE } from './profile/model/researcher-profile.resource-type';
@@ -42,6 +55,7 @@ import { SITE } from './shared/site.resource-type';
import { VERSION } from './shared/version.resource-type';
import { VERSION_HISTORY } from './shared/version-history.resource-type';
import { USAGE_REPORT } from './statistics/models/usage-report.resource-type';
import { CorrectionType } from './submission/models/correctiontype.model';
import { SUBMISSION_CC_LICENSE } from './submission/models/submission-cc-licence.resource-type';
import { SUBMISSION_CC_LICENSE_URL } from './submission/models/submission-cc-licence-link.resource-type';
import {
@@ -107,7 +121,19 @@ export const LAZY_DATA_SERVICES: LazyDataServicesMap = {
[FEATURE.value]: () => import('./data/feature-authorization/authorization-data.service').then(m => m.AuthorizationDataService),
[DSPACE_OBJECT.value]: () => import('./data/dspace-object-data.service').then(m => m.DSpaceObjectDataService),
[BITSTREAM_FORMAT.value]: () => import('./data/bitstream-format-data.service').then(m => m.BitstreamFormatDataService),
[SUBMISSION_COAR_NOTIFY_CONFIG.value]: () => import('../submission/sections/section-coar-notify/coar-notify-config-data.service').then(m => m.CoarNotifyConfigDataService),
[LDN_SERVICE_CONSTRAINT_FILTERS.value]: () => import('../admin/admin-ldn-services/ldn-services-data/ldn-itemfilters-data.service').then(m => m.LdnItemfiltersService),
[LDN_SERVICE.value]: () => import('../admin/admin-ldn-services/ldn-services-data/ldn-services-data.service').then(m => m.LdnServicesService),
[ADMIN_NOTIFY_MESSAGE.value]: () => import('../admin/admin-notify-dashboard/services/admin-notify-messages.service').then(m => m.AdminNotifyMessagesService),
[SUBMISSION_FORMS_TYPE.value]: () => import('./config/submission-forms-config-data.service').then(m => m.SubmissionFormsConfigDataService),
[NOTIFYREQUEST.value]: () => import('./data/notify-services-status-data.service').then(m => m.NotifyRequestsStatusDataService),
[QUALITY_ASSURANCE_EVENT_OBJECT.value]: () => import('./notifications/qa/events/quality-assurance-event-data.service').then(m => m.QualityAssuranceEventDataService),
[QUALITY_ASSURANCE_SOURCE_OBJECT.value]: () => import('./notifications/qa/source/quality-assurance-source-data.service').then(m => m.QualityAssuranceSourceDataService),
[QUALITY_ASSURANCE_TOPIC_OBJECT.value]: () => import('./notifications/qa/topics/quality-assurance-topic-data.service').then(m => m.QualityAssuranceTopicDataService),
[SUGGESTION_SOURCE.value]: () => import('./notifications/source/suggestion-source-data.service').then(m => m.SuggestionSourceDataService),
[SUGGESTION_TARGET.value]: () => import('./notifications/target/suggestion-target-data.service').then(m => m.SuggestionTargetDataService),
[DUPLICATE.value]: () => import('./submission/submission-duplicate-data.service').then(m => m.SubmissionDuplicateDataService),
[CorrectionType.type.value]: () => import('./submission/correctiontype-data.service').then(m => m.CorrectionTypeDataService),
};

View File

@@ -6,18 +6,15 @@ import {
} from 'rxjs';
import { NotifyRequestsStatus } from '../../item-page/simple/notify-requests-status/notify-requests-status.model';
import { NOTIFYREQUEST } from '../../item-page/simple/notify-requests-status/notify-requests-status.resource-type';
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
import { ObjectCacheService } from '../cache/object-cache.service';
import { HALEndpointService } from '../shared/hal-endpoint.service';
import { dataService } from './base/data-service.decorator';
import { IdentifiableDataService } from './base/identifiable-data.service';
import { RemoteData } from './remote-data';
import { GetRequest } from './request.models';
import { RequestService } from './request.service';
@Injectable({ providedIn: 'root' })
@dataService(NOTIFYREQUEST)
export class NotifyRequestsStatusDataService extends IdentifiableDataService<NotifyRequestsStatus> {
constructor(

View File

@@ -21,7 +21,6 @@ import {
CreateData,
CreateDataImpl,
} from '../../../data/base/create-data';
import { dataService } from '../../../data/base/data-service.decorator';
import {
DeleteData,
DeleteDataImpl,
@@ -48,13 +47,11 @@ import { HttpOptions } from '../../../dspace-rest/dspace-rest.service';
import { HALEndpointService } from '../../../shared/hal-endpoint.service';
import { NoContent } from '../../../shared/NoContent.model';
import { QualityAssuranceEventObject } from '../models/quality-assurance-event.model';
import { QUALITY_ASSURANCE_EVENT_OBJECT } from '../models/quality-assurance-event-object.resource-type';
/**
* The service handling all Quality Assurance topic REST requests.
*/
@Injectable({ providedIn: 'root' })
@dataService(QUALITY_ASSURANCE_EVENT_OBJECT)
export class QualityAssuranceEventDataService extends IdentifiableDataService<QualityAssuranceEventObject> {
private createData: CreateData<QualityAssuranceEventObject>;

View File

@@ -5,7 +5,6 @@ import { NotificationsService } from '../../../../shared/notifications/notificat
import { FollowLinkConfig } from '../../../../shared/utils/follow-link-config.model';
import { RemoteDataBuildService } from '../../../cache/builders/remote-data-build.service';
import { ObjectCacheService } from '../../../cache/object-cache.service';
import { dataService } from '../../../data/base/data-service.decorator';
import {
FindAllData,
FindAllDataImpl,
@@ -21,13 +20,11 @@ import { RemoteData } from '../../../data/remote-data';
import { RequestService } from '../../../data/request.service';
import { HALEndpointService } from '../../../shared/hal-endpoint.service';
import { QualityAssuranceSourceObject } from '../models/quality-assurance-source.model';
import { QUALITY_ASSURANCE_SOURCE_OBJECT } from '../models/quality-assurance-source-object.resource-type';
/**
* The service handling all Quality Assurance source REST requests.
*/
@Injectable({ providedIn: 'root' })
@dataService(QUALITY_ASSURANCE_SOURCE_OBJECT)
export class QualityAssuranceSourceDataService extends IdentifiableDataService<QualityAssuranceSourceObject> {
private findAllData: FindAllData<QualityAssuranceSourceObject>;

View File

@@ -5,7 +5,6 @@ import { NotificationsService } from '../../../../shared/notifications/notificat
import { FollowLinkConfig } from '../../../../shared/utils/follow-link-config.model';
import { RemoteDataBuildService } from '../../../cache/builders/remote-data-build.service';
import { ObjectCacheService } from '../../../cache/object-cache.service';
import { dataService } from '../../../data/base/data-service.decorator';
import {
FindAllData,
FindAllDataImpl,
@@ -21,13 +20,11 @@ import { RemoteData } from '../../../data/remote-data';
import { RequestService } from '../../../data/request.service';
import { HALEndpointService } from '../../../shared/hal-endpoint.service';
import { QualityAssuranceTopicObject } from '../models/quality-assurance-topic.model';
import { QUALITY_ASSURANCE_TOPIC_OBJECT } from '../models/quality-assurance-topic-object.resource-type';
/**
* The service handling all Quality Assurance topic REST requests.
*/
@Injectable({ providedIn: 'root' })
@dataService(QUALITY_ASSURANCE_TOPIC_OBJECT)
export class QualityAssuranceTopicDataService extends IdentifiableDataService<QualityAssuranceTopicObject> {
private findAllData: FindAllData<QualityAssuranceTopicObject>;

View File

@@ -8,7 +8,6 @@ import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model
import { RemoteDataBuildService } from '../../cache/builders/remote-data-build.service';
import { ObjectCacheService } from '../../cache/object-cache.service';
import { CoreState } from '../../core-state.model';
import { dataService } from '../../data/base/data-service.decorator';
import {
FindAllData,
FindAllDataImpl,
@@ -21,13 +20,11 @@ import { RemoteData } from '../../data/remote-data';
import { RequestService } from '../../data/request.service';
import { HALEndpointService } from '../../shared/hal-endpoint.service';
import { SuggestionSource } from '../models/suggestion-source.model';
import { SUGGESTION_SOURCE } from '../models/suggestion-source-object.resource-type';
/**
* Service that retrieves Suggestion Source data
*/
@Injectable({ providedIn: 'root' })
@dataService(SUGGESTION_SOURCE)
export class SuggestionSourceDataService extends IdentifiableDataService<SuggestionSource> {
protected linkPath = 'suggestionsources';

View File

@@ -9,7 +9,6 @@ import { RemoteDataBuildService } from '../../cache/builders/remote-data-build.s
import { RequestParam } from '../../cache/models/request-param.model';
import { ObjectCacheService } from '../../cache/object-cache.service';
import { CoreState } from '../../core-state.model';
import { dataService } from '../../data/base/data-service.decorator';
import {
FindAllData,
FindAllDataImpl,
@@ -26,10 +25,8 @@ import { RemoteData } from '../../data/remote-data';
import { RequestService } from '../../data/request.service';
import { HALEndpointService } from '../../shared/hal-endpoint.service';
import { SuggestionTarget } from '../models/suggestion-target.model';
import { SUGGESTION_TARGET } from '../models/suggestion-target-object.resource-type';
@Injectable({ providedIn: 'root' })
@dataService(SUGGESTION_TARGET)
export class SuggestionTargetDataService extends IdentifiableDataService<SuggestionTarget> {
protected linkPath = 'suggestiontargets';

View File

@@ -8,7 +8,6 @@ import { NotificationsService } from '../../shared/notifications/notifications.s
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
import { RequestParam } from '../cache/models/request-param.model';
import { ObjectCacheService } from '../cache/object-cache.service';
import { dataService } from '../data/base/data-service.decorator';
import { IdentifiableDataService } from '../data/base/identifiable-data.service';
import { SearchDataImpl } from '../data/base/search-data';
import { FindListOptions } from '../data/find-list-options.model';
@@ -26,7 +25,6 @@ import { CorrectionType } from './models/correctiontype.model';
* A service that provides methods to make REST requests with correctiontypes endpoint.
*/
@Injectable({ providedIn: 'root' })
@dataService(CorrectionType.type)
export class CorrectionTypeDataService extends IdentifiableDataService<CorrectionType> {
protected linkPath = 'correctiontypes';
protected searchByTopic = 'findByTopic';

View File

@@ -3,13 +3,11 @@ import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { Duplicate } from '../../shared/object-list/duplicate-data/duplicate.model';
import { DUPLICATE } from '../../shared/object-list/duplicate-data/duplicate.resource-type';
import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
import { RequestParam } from '../cache/models/request-param.model';
import { ObjectCacheService } from '../cache/object-cache.service';
import { BaseDataService } from '../data/base/base-data.service';
import { dataService } from '../data/base/data-service.decorator';
import {
SearchData,
SearchDataImpl,
@@ -35,7 +33,6 @@ import { HALEndpointService } from '../shared/hal-endpoint.service';
*
*/
@Injectable({ providedIn: 'root' })
@dataService(DUPLICATE)
export class SubmissionDuplicateDataService extends BaseDataService<Duplicate> implements SearchData<Duplicate> {
/**

View File

@@ -18,6 +18,7 @@ import { DSONameServiceMock } from '../../../../shared/mocks/dso-name.service.mo
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/remote-data.utils';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { PersonSearchResultGridElementComponent } from '../search-result-grid-elements/person/person-search-result-grid-element.component';
import { PersonGridElementComponent } from './person-grid-element.component';
const mockItem = Object.assign(new Item(), {
@@ -62,6 +63,7 @@ describe('PersonGridElementComponent', () => {
schemas: [NO_ERRORS_SCHEMA],
}).overrideComponent(PersonGridElementComponent, {
add: { changeDetection: ChangeDetectionStrategy.Default },
remove: { imports: [PersonSearchResultGridElementComponent] },
}).compileComponents();
}));

View File

@@ -23,6 +23,10 @@ import { ThemeService } from '../../../../../shared/theme-support/theme.service'
import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service';
import { TruncatePipe } from '../../../../../shared/utils/truncate.pipe';
import { ProjectSearchResultListElementComponent } from './project-search-result-list-element.component';
import { ThumbnailComponent } from '../../../../../thumbnail/thumbnail.component';
import { NgClass } from '@angular/common';
import { TruncatableComponent } from '../../../../../shared/truncatable/truncatable.component';
import { ThemedBadgesComponent } from '../../../../../shared/object-collection/shared/badges/themed-badges.component';
let projectListElementComponent: ProjectSearchResultListElementComponent;
let fixture: ComponentFixture<ProjectSearchResultListElementComponent>;
@@ -91,6 +95,7 @@ describe('ProjectSearchResultListElementComponent', () => {
schemas: [NO_ERRORS_SCHEMA],
}).overrideComponent(ProjectSearchResultListElementComponent, {
add: { changeDetection: ChangeDetectionStrategy.Default },
remove: { imports: [ThumbnailComponent, TruncatableComponent, ThemedBadgesComponent] },
}).compileComponents();
}));

View File

@@ -12,6 +12,7 @@ import {
waitForAsync,
} from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { ActivatedRoute } from '@angular/router';
import { StoreModule } from '@ngrx/store';
import {
TranslateLoader,
@@ -24,6 +25,7 @@ import { storeModuleConfig } from '../app.reducer';
import { NotifyInfoService } from '../core/coar-notify/notify-info/notify-info.service';
import { AuthorizationDataService } from '../core/data/feature-authorization/authorization-data.service';
import { TranslateLoaderMock } from '../shared/mocks/translate-loader.mock';
import { ActivatedRouteStub } from '../shared/testing/active-router.stub';
import { AuthorizationDataServiceStub } from '../shared/testing/authorization-service.stub';
// Load the implementations that should be tested
import { FooterComponent } from './footer.component';
@@ -51,6 +53,7 @@ describe('Footer component', () => {
FooterComponent,
{ provide: AuthorizationDataService, useClass: AuthorizationDataServiceStub },
{ provide: NotifyInfoService, useValue: notifyInfoService },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
});

View File

@@ -44,16 +44,29 @@ import { MetadataMap } from '../../../../core/shared/metadata.models';
import { SearchService } from '../../../../core/shared/search/search.service';
import { UUIDService } from '../../../../core/shared/uuid.service';
import { WorkspaceitemDataService } from '../../../../core/submission/workspaceitem-data.service';
import { DsoEditMenuComponent } from '../../../../shared/dso-page/dso-edit-menu/dso-edit-menu.component';
import { MetadataFieldWrapperComponent } from '../../../../shared/metadata-field-wrapper/metadata-field-wrapper.component';
import { mockTruncatableService } from '../../../../shared/mocks/mock-trucatable.service';
import { TranslateLoaderMock } from '../../../../shared/mocks/translate-loader.mock';
import { NotificationsService } from '../../../../shared/notifications/notifications.service';
import { createSuccessfulRemoteDataObject$ } from '../../../../shared/remote-data.utils';
import { ThemedResultsBackButtonComponent } from '../../../../shared/results-back-button/themed-results-back-button.component';
import { BrowseDefinitionDataServiceStub } from '../../../../shared/testing/browse-definition-data-service.stub';
import { createPaginatedList } from '../../../../shared/testing/utils.test';
import { TruncatableService } from '../../../../shared/truncatable/truncatable.service';
import { TruncatePipe } from '../../../../shared/utils/truncate.pipe';
import { ThemedThumbnailComponent } from '../../../../thumbnail/themed-thumbnail.component';
import { CollectionsComponent } from '../../../field-components/collections/collections.component';
import { ThemedMediaViewerComponent } from '../../../media-viewer/themed-media-viewer.component';
import { MiradorViewerComponent } from '../../../mirador-viewer/mirador-viewer.component';
import { ItemVersionsSharedService } from '../../../versions/item-versions-shared.service';
import { ThemedFileSectionComponent } from '../../field-components/file-section/themed-file-section.component';
import { ItemPageAbstractFieldComponent } from '../../field-components/specific-field/abstract/item-page-abstract-field.component';
import { ItemPageDateFieldComponent } from '../../field-components/specific-field/date/item-page-date-field.component';
import { GenericItemPageFieldComponent } from '../../field-components/specific-field/generic/generic-item-page-field.component';
import { ThemedItemPageTitleFieldComponent } from '../../field-components/specific-field/title/themed-item-page-field.component';
import { ItemPageUriFieldComponent } from '../../field-components/specific-field/uri/item-page-uri-field.component';
import { ThemedMetadataRepresentationListComponent } from '../../metadata-representation-list/themed-metadata-representation-list.component';
import {
createRelationshipsObservable,
getIIIFEnabled,
@@ -122,6 +135,24 @@ describe('UntypedItemComponent', () => {
schemas: [NO_ERRORS_SCHEMA],
}).overrideComponent(UntypedItemComponent, {
add: { changeDetection: ChangeDetectionStrategy.Default },
remove: {
imports: [
ThemedResultsBackButtonComponent,
MiradorViewerComponent,
ThemedItemPageTitleFieldComponent,
DsoEditMenuComponent,
MetadataFieldWrapperComponent,
ThemedThumbnailComponent,
ThemedMediaViewerComponent,
ThemedFileSectionComponent,
ItemPageDateFieldComponent,
ThemedMetadataRepresentationListComponent,
GenericItemPageFieldComponent,
ItemPageAbstractFieldComponent,
ItemPageUriFieldComponent,
CollectionsComponent,
],
},
});
}));
@@ -251,7 +282,7 @@ describe('UntypedItemComponent', () => {
expect(fields.length).toBeGreaterThanOrEqual(1);
});
it('should not retrieve the query term for previous route', fakeAsync( () => {
it('should not retrieve the query term for previous route', fakeAsync(() => {
let emitted;
comp.iiifQuery$.subscribe(result => emitted = result);
tick(10);

View File

@@ -4,11 +4,13 @@ import {
TestBed,
} from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { ActivatedRoute } from '@angular/router';
import { provideMockStore } from '@ngrx/store/testing';
import { TranslateModule } from '@ngx-translate/core';
import { of } from 'rxjs';
import { SplitPipe } from 'src/app/shared/utils/split.pipe';
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';
@@ -17,6 +19,7 @@ import { QualityAssuranceSourceDataService } from '../../../core/notifications/q
import { HALEndpointService } from '../../../core/shared/hal-endpoint.service';
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
import { ActivatedRouteStub } from '../../../shared/testing/active-router.stub';
import { HALEndpointServiceStub } from '../../../shared/testing/hal-endpoint-service.stub';
import { createPaginatedList } from '../../../shared/testing/utils.test';
import { QaEventNotificationComponent } from './qa-event-notification.component';
@@ -43,6 +46,8 @@ describe('QaEventNotificationComponent', () => {
await TestBed.configureTestingModule({
imports: [CommonModule, TranslateModule.forRoot(), QaEventNotificationComponent, SplitPipe],
providers: [
{ provide: APP_DATA_SERVICES_MAP, useValue: {} },
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
{ provide: QualityAssuranceSourceDataService, useValue: qualityAssuranceSourceDataServiceStub },
{ provide: RequestService, useValue: {} },
{ provide: NotificationsService, useValue: {} },

View File

@@ -19,6 +19,7 @@ import { VarDirective } from '../../shared/utils/var.directive';
import { ProcessBulkDeleteService } from './process-bulk-delete.service';
import { ProcessOverviewComponent } from './process-overview.component';
import { ProcessOverviewService } from './process-overview.service';
import { ProcessOverviewTableComponent } from './table/process-overview-table.component';
describe('ProcessOverviewComponent', () => {
let component: ProcessOverviewComponent;
@@ -66,7 +67,10 @@ describe('ProcessOverviewComponent', () => {
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(ProcessOverviewComponent, {
remove: { imports: [PaginationComponent] },
remove: { imports: [
PaginationComponent,
ProcessOverviewTableComponent,
] },
})
.compileComponents();
}));

View File

@@ -3,7 +3,10 @@ import {
ComponentFixture,
TestBed,
} from '@angular/core/testing';
import { ActivatedRoute } from '@angular/router';
import { QualityAssuranceSourceComponent } from '../../notifications/qa/source/quality-assurance-source.component';
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
import { QualityAssuranceSourcePageComponent } from './quality-assurance-source-page.component';
describe('QualityAssuranceSourcePageComponent', () => {
@@ -13,8 +16,16 @@ describe('QualityAssuranceSourcePageComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [QualityAssuranceSourcePageComponent],
providers: [
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(QualityAssuranceSourcePageComponent, {
remove: {
imports: [QualityAssuranceSourceComponent],
},
})
.compileComponents();
});

View File

@@ -4,7 +4,10 @@ import {
ComponentFixture,
TestBed,
} from '@angular/core/testing';
import { ActivatedRoute } from '@angular/router';
import { QualityAssuranceTopicsComponent } from '../../notifications/qa/topics/quality-assurance-topics.component';
import { ActivatedRouteStub } from '../../shared/testing/active-router.stub';
import { QualityAssuranceTopicsPageComponent } from './quality-assurance-topics-page.component';
describe('QualityAssuranceTopicsPageComponent', () => {
@@ -14,8 +17,16 @@ describe('QualityAssuranceTopicsPageComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [QualityAssuranceTopicsPageComponent],
providers: [
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
schemas: [NO_ERRORS_SCHEMA],
})
.overrideComponent(QualityAssuranceTopicsPageComponent, {
remove: {
imports: [QualityAssuranceTopicsComponent],
},
})
.compileComponents();
}));

View File

@@ -23,9 +23,11 @@ import { WorkflowItem } from '../../../../core/submission/models/workflowitem.mo
import { ClaimedTask } from '../../../../core/tasks/models/claimed-task-object.model';
import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock';
import { getMockLinkService } from '../../../mocks/link-service.mock';
import { ClaimedTaskActionsComponent } from '../../../mydspace-actions/claimed-task/claimed-task-actions.component';
import { ClaimedTaskSearchResult } from '../../../object-collection/shared/claimed-task-search-result.model';
import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils';
import { VarDirective } from '../../../utils/var.directive';
import { ItemDetailPreviewComponent } from '../item-detail-preview/item-detail-preview.component';
import { ClaimedTaskSearchResultDetailElementComponent } from './claimed-task-search-result-detail-element.component';
let component: ClaimedTaskSearchResultDetailElementComponent;
@@ -86,6 +88,9 @@ describe('ClaimedTaskSearchResultDetailElementComponent', () => {
schemas: [NO_ERRORS_SCHEMA],
}).overrideComponent(ClaimedTaskSearchResultDetailElementComponent, {
add: { changeDetection: ChangeDetectionStrategy.Default },
remove: {
imports: [ItemDetailPreviewComponent, ClaimedTaskActionsComponent],
},
}).compileComponents();
}));

View File

@@ -14,7 +14,9 @@ import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { Context } from '../../../../core/shared/context.model';
import { Item } from '../../../../core/shared/item.model';
import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock';
import { ItemActionsComponent } from '../../../mydspace-actions/item/item-actions.component';
import { ItemSearchResult } from '../../../object-collection/shared/item-search-result.model';
import { ItemDetailPreviewComponent } from '../item-detail-preview/item-detail-preview.component';
import { ItemSearchResultDetailElementComponent } from './item-search-result-detail-element.component';
let component: ItemSearchResultDetailElementComponent;
@@ -65,6 +67,9 @@ describe('ItemSearchResultDetailElementComponent', () => {
schemas: [NO_ERRORS_SCHEMA],
}).overrideComponent(ItemSearchResultDetailElementComponent, {
add: { changeDetection: ChangeDetectionStrategy.Default },
remove: {
imports: [ItemDetailPreviewComponent, ItemActionsComponent],
},
}).compileComponents();
}));

View File

@@ -17,8 +17,10 @@ import { Item } from '../../../../core/shared/item.model';
import { WorkspaceItem } from '../../../../core/submission/models/workspaceitem.model';
import { DSONameServiceMock } from '../../../mocks/dso-name.service.mock';
import { getMockLinkService } from '../../../mocks/link-service.mock';
import { WorkspaceitemActionsComponent } from '../../../mydspace-actions/workspaceitem/workspaceitem-actions.component';
import { WorkflowItemSearchResult } from '../../../object-collection/shared/workflow-item-search-result.model';
import { createSuccessfulRemoteDataObject } from '../../../remote-data.utils';
import { ItemDetailPreviewComponent } from '../item-detail-preview/item-detail-preview.component';
import { WorkspaceItemSearchResultDetailElementComponent } from './workspace-item-search-result-detail-element.component';
let component: WorkspaceItemSearchResultDetailElementComponent;
@@ -75,6 +77,12 @@ describe('WorkspaceItemSearchResultDetailElementComponent', () => {
schemas: [NO_ERRORS_SCHEMA],
}).overrideComponent(WorkspaceItemSearchResultDetailElementComponent, {
add: { changeDetection: ChangeDetectionStrategy.Default },
remove: {
imports: [
ItemDetailPreviewComponent,
WorkspaceitemActionsComponent,
],
},
}).compileComponents();
}));

View File

@@ -15,6 +15,7 @@ import { LinkService } from '../../../core/cache/builders/link.service';
import { Community } from '../../../core/shared/community.model';
import { ActivatedRouteStub } from '../../testing/active-router.stub';
import { CommunityGridElementComponent } from './community-grid-element.component';
import { ThemedThumbnailComponent } from '../../../thumbnail/themed-thumbnail.component';
let communityGridElementComponent: CommunityGridElementComponent;
let fixture: ComponentFixture<CommunityGridElementComponent>;
@@ -60,6 +61,9 @@ describe('CommunityGridElementComponent', () => {
schemas: [NO_ERRORS_SCHEMA],
}).overrideComponent(CommunityGridElementComponent, {
add: { changeDetection: ChangeDetectionStrategy.Default },
remove: {
imports: [ThemedThumbnailComponent],
},
}).compileComponents();
}));

View File

@@ -30,11 +30,15 @@ import { HALEndpointService } from '../../../../../core/shared/hal-endpoint.serv
import { Item } from '../../../../../core/shared/item.model';
import { PageInfo } from '../../../../../core/shared/page-info.model';
import { UUIDService } from '../../../../../core/shared/uuid.service';
import { ThemedThumbnailComponent } from '../../../../../thumbnail/themed-thumbnail.component';
import { NotificationsService } from '../../../../notifications/notifications.service';
import { ThemedBadgesComponent } from '../../../../object-collection/shared/badges/themed-badges.component';
import { ItemSearchResult } from '../../../../object-collection/shared/item-search-result.model';
import { createSuccessfulRemoteDataObject$ } from '../../../../remote-data.utils';
import { ActivatedRouteStub } from '../../../../testing/active-router.stub';
import { TruncatableComponent } from '../../../../truncatable/truncatable.component';
import { TruncatableService } from '../../../../truncatable/truncatable.service';
import { TruncatablePartComponent } from '../../../../truncatable/truncatable-part/truncatable-part.component';
import { TruncatePipe } from '../../../../utils/truncate.pipe';
import { ItemSearchResultGridElementComponent } from './item-search-result-grid-element.component';
@@ -250,6 +254,11 @@ export function getEntityGridElementTestComponent(component, searchResultWithMet
schemas: [NO_ERRORS_SCHEMA],
}).overrideComponent(component, {
add: { changeDetection: ChangeDetectionStrategy.Default },
remove: {
imports: [
ThemedThumbnailComponent, ThemedBadgesComponent, TruncatableComponent, TruncatablePartComponent,
],
},
}).compileComponents();
}));

View File

@@ -7,10 +7,12 @@ import {
TestBed,
waitForAsync,
} from '@angular/core/testing';
import { ActivatedRoute } from '@angular/router';
import { MetadataRepresentationType } from '../../../../core/shared/metadata-representation/metadata-representation.model';
import { MetadatumRepresentation } from '../../../../core/shared/metadata-representation/metadatum/metadatum-representation.model';
import { ValueListBrowseDefinition } from '../../../../core/shared/value-list-browse-definition.model';
import { ActivatedRouteStub } from '../../../testing/active-router.stub';
import { BrowseLinkMetadataListElementComponent } from './browse-link-metadata-list-element.component';
const mockMetadataRepresentation = Object.assign(new MetadatumRepresentation('type'), {
@@ -37,6 +39,9 @@ describe('BrowseLinkMetadataListElementComponent', () => {
void TestBed.configureTestingModule({
imports: [BrowseLinkMetadataListElementComponent],
schemas: [NO_ERRORS_SCHEMA],
providers: [
{ provide: ActivatedRoute, useValue: new ActivatedRouteStub() },
],
}).overrideComponent(BrowseLinkMetadataListElementComponent, {
set: { changeDetection: ChangeDetectionStrategy.Default },
}).compileComponents();

View File

@@ -45,6 +45,9 @@ import { ThemeService } from '../../../theme-support/theme.service';
import { TruncatableService } from '../../../truncatable/truncatable.service';
import { VarDirective } from '../../../utils/var.directive';
import { ClaimedSearchResultListElementComponent } from './claimed-search-result-list-element.component';
import { AsyncPipe, NgClass, NgIf } from '@angular/common';
import { ThemedItemListPreviewComponent } from '../item-list-preview/themed-item-list-preview.component';
import { ClaimedTaskActionsComponent } from '../../../mydspace-actions/claimed-task/claimed-task-actions.component';
let component: ClaimedSearchResultListElementComponent;
let fixture: ComponentFixture<ClaimedSearchResultListElementComponent>;
@@ -129,6 +132,9 @@ describe('ClaimedSearchResultListElementComponent', () => {
schemas: [NO_ERRORS_SCHEMA],
}).overrideComponent(ClaimedSearchResultListElementComponent, {
add: { changeDetection: ChangeDetectionStrategy.Default },
remove: {
imports: [ThemedItemListPreviewComponent, ClaimedTaskActionsComponent],
},
}).compileComponents();
}));

View File

@@ -13,6 +13,8 @@ import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
import { TranslateModule } from '@ngx-translate/core';
import { CollectionListEntry } from '../../../shared/collection-dropdown/collection-dropdown.component';
import { ThemedCollectionDropdownComponent } from '../../../shared/collection-dropdown/themed-collection-dropdown.component';
import { ThemedLoadingComponent } from '../../../shared/loading/themed-loading.component';
import { getMockThemeService } from '../../../shared/mocks/theme-service.mock';
import { createTestComponent } from '../../../shared/testing/utils.test';
import { ThemeService } from '../../../shared/theme-support/theme.service';
@@ -37,7 +39,16 @@ describe('SubmissionImportExternalCollectionComponent test suite', () => {
{ provide: ThemeService, useValue: themeService },
],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents().then();
})
.overrideComponent(SubmissionImportExternalCollectionComponent, {
remove: {
imports: [
ThemedLoadingComponent,
ThemedCollectionDropdownComponent,
],
},
})
.compileComponents().then();
}));
// First test to check the correct component creation
@@ -128,7 +139,7 @@ describe('SubmissionImportExternalCollectionComponent test suite', () => {
expect(comp.selectedEvent.emit).toHaveBeenCalledWith(selected);
});
it('dropdown should be invisible when the component is loading', () => {
it('dropdown should be invisible when the component is loading', waitForAsync(() => {
spyOn(comp, 'isLoading').and.returnValue(true);
fixture.detectChanges();
@@ -137,7 +148,7 @@ describe('SubmissionImportExternalCollectionComponent test suite', () => {
const dropdownMenu = fixture.debugElement.query(By.css('ds-themed-collection-dropdown')).nativeElement;
expect(dropdownMenu.classList).toContain('d-none');
});
});
}));
});
});

View File

@@ -13,7 +13,6 @@ import {
CreateData,
CreateDataImpl,
} from '../../../core/data/base/create-data';
import { dataService } from '../../../core/data/base/data-service.decorator';
import {
DeleteData,
DeleteDataImpl,
@@ -40,7 +39,6 @@ import { NoContent } from '../../../core/shared/NoContent.model';
import { URLCombiner } from '../../../core/url-combiner/url-combiner';
import { NotificationsService } from '../../../shared/notifications/notifications.service';
import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model';
import { SUBMISSION_COAR_NOTIFY_CONFIG } from './section-coar-notify-service.resource-type';
import { SubmissionCoarNotifyConfig } from './submission-coar-notify.config';
@@ -48,7 +46,6 @@ import { SubmissionCoarNotifyConfig } from './submission-coar-notify.config';
* A service responsible for fetching/sending data from/to the REST API on the CoarNotifyConfig endpoint
*/
@Injectable({ providedIn: 'root' })
@dataService(SUBMISSION_COAR_NOTIFY_CONFIG)
export class CoarNotifyConfigDataService extends IdentifiableDataService<SubmissionCoarNotifyConfig> implements FindAllData<SubmissionCoarNotifyConfig>, DeleteData<SubmissionCoarNotifyConfig>, PatchData<SubmissionCoarNotifyConfig>, CreateData<SubmissionCoarNotifyConfig> {
createData: CreateDataImpl<SubmissionCoarNotifyConfig>;
private findAllData: FindAllDataImpl<SubmissionCoarNotifyConfig>;

View File

@@ -28,6 +28,7 @@ import { JsonPatchOperationPathCombiner } from '../../../../core/json-patch/buil
import { JsonPatchOperationsBuilder } from '../../../../core/json-patch/builder/json-patch-operations-builder';
import { HALEndpointService } from '../../../../core/shared/hal-endpoint.service';
import { SubmissionJsonPatchOperationsService } from '../../../../core/submission/submission-json-patch-operations.service';
import { ThemedFileDownloadLinkComponent } from '../../../../shared/file-download-link/themed-file-download-link.component';
import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service';
import { FormService } from '../../../../shared/form/form.service';
import { getMockFormService } from '../../../../shared/mocks/form-service.mock';
@@ -123,6 +124,7 @@ describe('SubmissionSectionUploadFileComponent test suite', () => {
.overrideComponent(SubmissionSectionUploadFileComponent, {
remove: { imports: [
SubmissionSectionUploadFileViewComponent,
ThemedFileDownloadLinkComponent,
] },
})
.compileComponents().then();