Merge pull request #1076 from atmire/1067-blank-qualifier

UI sends wrong request when creating new metadata field without qualifier
This commit is contained in:
Tim Donohue
2021-03-31 12:42:29 -05:00
committed by GitHub
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', () => { describe('when updateMetadataField is called', () => {
let result: Observable<MetadataField>; 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', () => { describe('when deleteMetadataSchema is called', () => {
let result: Observable<RemoteData<NoContent>>; let result: Observable<RemoteData<NoContent>>;

View File

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