diff --git a/src/app/core/cache/object-cache.service.spec.ts b/src/app/core/cache/object-cache.service.spec.ts index 461263d131..c3b7781d70 100644 --- a/src/app/core/cache/object-cache.service.spec.ts +++ b/src/app/core/cache/object-cache.service.spec.ts @@ -54,9 +54,10 @@ describe('ObjectCacheService', () => { beforeEach(() => { init(); store = new Store(undefined, undefined, undefined); - linkServiceStub = jasmine.createSpyObj({ - removeResolvedLinks: {} - }); + linkServiceStub = { + removeResolvedLinks: (a) => a + }; + spyOn(linkServiceStub, 'removeResolvedLinks').and.callThrough(); spyOn(store, 'dispatch'); service = new ObjectCacheService(store, linkServiceStub); diff --git a/src/app/core/config/models/config-submission-definition.model.ts b/src/app/core/config/models/config-submission-definition.model.ts index 1437ae32b1..f3e888d513 100644 --- a/src/app/core/config/models/config-submission-definition.model.ts +++ b/src/app/core/config/models/config-submission-definition.model.ts @@ -1,4 +1,4 @@ -import { autoserialize, deserialize } from 'cerialize'; +import { autoserialize, deserialize, inheritSerialization } from 'cerialize'; import { typedObject } from '../../cache/builders/build-decorators'; import { PaginatedList } from '../../data/paginated-list'; import { HALLink } from '../../shared/hal-link.model'; @@ -10,6 +10,7 @@ import { ConfigObject } from './config.model'; * Class for the configuration describing the submission */ @typedObject +@inheritSerialization(ConfigObject) export class SubmissionDefinitionModel extends ConfigObject { static type = new ResourceType('submissiondefinition'); diff --git a/src/app/core/config/models/config-submission-section.model.ts b/src/app/core/config/models/config-submission-section.model.ts index d589e6a648..5a9c3225ab 100644 --- a/src/app/core/config/models/config-submission-section.model.ts +++ b/src/app/core/config/models/config-submission-section.model.ts @@ -1,4 +1,4 @@ -import { autoserialize, deserialize } from 'cerialize'; +import { autoserialize, deserialize, inheritSerialization } from 'cerialize'; import { SectionsType } from '../../../submission/sections/sections-type'; import { typedObject } from '../../cache/builders/build-decorators'; import { HALLink } from '../../shared/hal-link.model'; @@ -14,6 +14,7 @@ export interface SubmissionSectionVisibility { } @typedObject +@inheritSerialization(ConfigObject) export class SubmissionSectionModel extends ConfigObject { static type = new ResourceType('submissionsection'); diff --git a/src/app/core/config/models/config-submission-uploads.model.ts b/src/app/core/config/models/config-submission-uploads.model.ts index b88ce4e0f8..b7733ee25d 100644 --- a/src/app/core/config/models/config-submission-uploads.model.ts +++ b/src/app/core/config/models/config-submission-uploads.model.ts @@ -1,4 +1,4 @@ -import { autoserialize } from 'cerialize'; +import { autoserialize, inheritSerialization } from 'cerialize'; import { typedObject } from '../../cache/builders/build-decorators'; import { ConfigObject } from './config.model'; import { AccessConditionOption } from './config-access-condition-option.model'; @@ -6,6 +6,7 @@ import { SubmissionFormsModel } from './config-submission-forms.model'; import { ResourceType } from '../../shared/resource-type'; @typedObject +@inheritSerialization(ConfigObject) export class SubmissionUploadsModel extends ConfigObject { static type = new ResourceType('submissionupload'); /** diff --git a/src/app/core/config/models/config.model.ts b/src/app/core/config/models/config.model.ts index 98ba3e147f..fabb16eb23 100644 --- a/src/app/core/config/models/config.model.ts +++ b/src/app/core/config/models/config.model.ts @@ -9,6 +9,7 @@ export abstract class ConfigObject implements CacheableObject { /** * The name for this configuration */ + @autoserialize public name: string; /** diff --git a/src/app/core/data/collection-data.service.spec.ts b/src/app/core/data/collection-data.service.spec.ts index c8f056bf19..96141d6a8a 100644 --- a/src/app/core/data/collection-data.service.spec.ts +++ b/src/app/core/data/collection-data.service.spec.ts @@ -126,7 +126,7 @@ describe('CollectionDataService', () => { notificationsService = new NotificationsServiceStub(); translate = getMockTranslateService(); - service = new CollectionDataService(requestService, rdbService, null, null, null, objectCache, halService, notificationsService, null, null, translate); + service = new CollectionDataService(requestService, rdbService, null, null, objectCache, halService, notificationsService, null, null, translate); } }); diff --git a/src/app/core/data/external-source.service.spec.ts b/src/app/core/data/external-source.service.spec.ts index 77a2a85dfd..f891b46883 100644 --- a/src/app/core/data/external-source.service.spec.ts +++ b/src/app/core/data/external-source.service.spec.ts @@ -49,7 +49,7 @@ describe('ExternalSourceService', () => { halService = jasmine.createSpyObj('halService', { getEndpoint: observableOf('external-sources-REST-endpoint') }); - service = new ExternalSourceService(requestService, rdbService, undefined, undefined, undefined, halService, undefined, undefined, undefined); + service = new ExternalSourceService(requestService, rdbService, undefined, undefined, halService, undefined, undefined, undefined); } beforeEach(() => { diff --git a/src/app/core/data/relationship-type.service.spec.ts b/src/app/core/data/relationship-type.service.spec.ts index 2322a692a7..bc81829559 100644 --- a/src/app/core/data/relationship-type.service.spec.ts +++ b/src/app/core/data/relationship-type.service.spec.ts @@ -11,7 +11,7 @@ import { PaginatedList } from './paginated-list'; import { RelationshipTypeService } from './relationship-type.service'; import { RequestService } from './request.service'; -describe('RelationshipTypeService', () => { +fdescribe('RelationshipTypeService', () => { let service: RelationshipTypeService; let requestService: RequestService; let restEndpointURL; diff --git a/src/app/core/dspace-rest-v2/dspace.serializer.spec.ts b/src/app/core/dspace-rest-v2/dspace.serializer.spec.ts index 36af99e073..b07a4f97d1 100644 --- a/src/app/core/dspace-rest-v2/dspace.serializer.spec.ts +++ b/src/app/core/dspace-rest-v2/dspace.serializer.spec.ts @@ -80,9 +80,9 @@ describe('DSpaceSerializer', () => { it('should turn a model in to a valid document', () => { const serializer = new DSpaceSerializer(TestModel); const doc = serializer.serialize(testModels[0]); - expect(testModels[0].id).toBe(doc.id); - expect(testModels[0].name).toBe(doc.name); - expect(testModels[0]._links).toBeUndefined(); + expect(doc.id).toBe(testModels[0].id); + expect(doc.name).toBe(testModels[0].name); + expect(doc._links).toBeUndefined(); }); }); @@ -93,12 +93,12 @@ describe('DSpaceSerializer', () => { const serializer = new DSpaceSerializer(TestModel); const doc = serializer.serializeArray(testModels); - expect(testModels[0].id).toBe(doc[0].id); - expect(testModels[0].name).toBe(doc[0].name); - expect(testModels[0]._links).toBeUndefined(); - expect(testModels[1].id).toBe(doc[1].id); - expect(testModels[1].name).toBe(doc[1].name); - expect(testModels[1]._links).toBeUndefined(); + expect(doc[0].id).toBe(testModels[0].id); + expect(doc[0].name).toBe(testModels[0].name); + expect(doc[0]._links).toBeUndefined(); + expect(doc[1].id).toBe(testModels[1].id); + expect(doc[1].name).toBe(testModels[1].name); + expect(doc[1]._links).toBeUndefined(); }); }); diff --git a/src/app/submission/sections/upload/section-upload.component.spec.ts b/src/app/submission/sections/upload/section-upload.component.spec.ts index af53a7ae6d..af865b81eb 100644 --- a/src/app/submission/sections/upload/section-upload.component.spec.ts +++ b/src/app/submission/sections/upload/section-upload.component.spec.ts @@ -197,7 +197,9 @@ describe('SubmissionSectionUploadComponent test suite', () => { submissionServiceStub.getSubmissionObject.and.returnValue(observableOf(submissionState)); - collectionDataService.findById.and.returnValue(createSuccessfulRemoteDataObject$(mockCollection)); + collectionDataService.findById.and.returnValue(createSuccessfulRemoteDataObject$(Object.assign(new Collection(), mockCollection, { + defaultAccessConditions: createSuccessfulRemoteDataObject$(mockDefaultAccessCondition) + }))); resourcePolicyService.findByHref.and.returnValue(createSuccessfulRemoteDataObject$(mockDefaultAccessCondition)); diff --git a/src/app/submission/sections/upload/section-upload.component.ts b/src/app/submission/sections/upload/section-upload.component.ts index 0a589ffc33..86da00c816 100644 --- a/src/app/submission/sections/upload/section-upload.component.ts +++ b/src/app/submission/sections/upload/section-upload.component.ts @@ -96,7 +96,7 @@ export class SubmissionSectionUploadComponent extends SectionModelComponent { public configMetadataForm$: Observable; /** - * List of available access conditions that could be setted to files + * List of available access conditions that could be set to files */ public availableAccessConditionOptions: AccessConditionOption[]; // List of accessConditions that an user can select @@ -161,10 +161,14 @@ export class SubmissionSectionUploadComponent extends SectionModelComponent { filter((submissionObject: SubmissionObjectEntry) => isNotUndefined(submissionObject) && !submissionObject.isLoading), filter((submissionObject: SubmissionObjectEntry) => isUndefined(this.collectionId) || this.collectionId !== submissionObject.collection), tap((submissionObject: SubmissionObjectEntry) => this.collectionId = submissionObject.collection), - flatMap((submissionObject: SubmissionObjectEntry) => this.collectionDataService.findById(submissionObject.collection, followLink('defaultAccessConditions'))), + flatMap((submissionObject: SubmissionObjectEntry) => this.collectionDataService.findById(submissionObject.collection)), filter((rd: RemoteData) => isNotUndefined((rd.payload))), tap((collectionRemoteData: RemoteData) => this.collectionName = collectionRemoteData.payload.name), - map((collectionRemoteData: RemoteData) => (collectionRemoteData.payload as any).defaultAccessConditions), + flatMap((collectionRemoteData: RemoteData) => { + return this.resourcePolicyService.findByHref( + (collectionRemoteData.payload as any)._links.defaultAccessConditions.href + ); + }), filter((defaultAccessConditionsRemoteData: RemoteData) => defaultAccessConditionsRemoteData.hasSucceeded), tap((defaultAccessConditionsRemoteData: RemoteData) => {