fix #1067 UI sends wrong request when creating new metadata field without qualifier

This commit is contained in:
Samuel
2021-03-24 16:46:05 +01:00
parent a5bc6c1bf7
commit 0c99557010
2 changed files with 44 additions and 0 deletions

View File

@@ -326,6 +326,25 @@ describe('RegistryService', () => {
});
});
describe('when createMetadataField is called with a blank qualifier', () => {
let result: Observable<MetadataField>;
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<MetadataField>;
@@ -341,6 +360,25 @@ describe('RegistryService', () => {
});
});
describe('when updateMetadataField is called with a blank qualifier', () => {
let result: Observable<MetadataField>;
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<RemoteData<NoContent>>;

View File

@@ -245,6 +245,9 @@ export class RegistryService {
* @param schema The MetadataSchema to create the field in
*/
public createMetadataField(field: MetadataField, schema: MetadataSchema): Observable<MetadataField> {
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<MetadataField> {
if (!field.qualifier) {
field.qualifier = null;
}
return this.metadataFieldService.put(field).pipe(
getFirstSucceededRemoteDataPayload(),
hasValueOperator(),