From 0c99557010b5f8ce9762fc5c8418f1fcc63e7eb0 Mon Sep 17 00:00:00 2001 From: Samuel Date: Wed, 24 Mar 2021 16:46:05 +0100 Subject: [PATCH] fix #1067 UI sends wrong request when creating new metadata field without qualifier --- .../core/registry/registry.service.spec.ts | 38 +++++++++++++++++++ src/app/core/registry/registry.service.ts | 6 +++ 2 files changed, 44 insertions(+) diff --git a/src/app/core/registry/registry.service.spec.ts b/src/app/core/registry/registry.service.spec.ts index fdfe1c9fac..5f2f123f01 100644 --- a/src/app/core/registry/registry.service.spec.ts +++ b/src/app/core/registry/registry.service.spec.ts @@ -326,6 +326,25 @@ describe('RegistryService', () => { }); }); + describe('when createMetadataField is called with a blank qualifier', () => { + let result: Observable; + let metadataField: MetadataField; + + beforeEach(() => { + metadataField = mockFieldsList[0]; + metadataField.qualifier = ''; + result = registryService.createMetadataField(metadataField, mockSchemasList[0]); + }); + + it('should return the created metadata field with a null qualifier', (done) => { + metadataField.qualifier = null; + result.subscribe((field: MetadataField) => { + expect(field).toEqual(metadataField); + done(); + }); + }); + }); + describe('when updateMetadataField is called', () => { let result: Observable; @@ -341,6 +360,25 @@ describe('RegistryService', () => { }); }); + describe('when updateMetadataField is called with a blank qualifier', () => { + let result: Observable; + let metadataField: MetadataField; + + beforeEach(() => { + metadataField = mockFieldsList[0]; + metadataField.qualifier = ''; + result = registryService.updateMetadataField(metadataField); + }); + + it('should return the updated metadata field with a null qualifier', (done) => { + metadataField.qualifier = null; + result.subscribe((field: MetadataField) => { + expect(field).toEqual(metadataField); + done(); + }); + }); + }); + describe('when deleteMetadataSchema is called', () => { let result: Observable>; diff --git a/src/app/core/registry/registry.service.ts b/src/app/core/registry/registry.service.ts index 9ac849bdd3..b7b35c6a5a 100644 --- a/src/app/core/registry/registry.service.ts +++ b/src/app/core/registry/registry.service.ts @@ -245,6 +245,9 @@ export class RegistryService { * @param schema The MetadataSchema to create the field in */ public createMetadataField(field: MetadataField, schema: MetadataSchema): Observable { + if (!field.qualifier) { + field.qualifier = null; + } return this.metadataFieldService.create(field, new RequestParam('schemaId', schema.id)).pipe( getFirstSucceededRemoteDataPayload(), hasValueOperator(), @@ -260,6 +263,9 @@ export class RegistryService { * @param field The MetadataField to update */ public updateMetadataField(field: MetadataField): Observable { + if (!field.qualifier) { + field.qualifier = null; + } return this.metadataFieldService.put(field).pipe( getFirstSucceededRemoteDataPayload(), hasValueOperator(),