[835] Auto-save in new Item Submission form breaks the form

Section metadata dispatched to the store and retrieved in subscription.
Added test case for hasMetadataEnrichment.
This commit is contained in:
Alessandro Martelli
2020-11-23 12:58:16 +01:00
parent 9b752b443e
commit 0acaa3e57f
2 changed files with 12 additions and 1 deletions

View File

@@ -301,6 +301,15 @@ describe('SubmissionSectionformComponent test suite', () => {
expect(comp.hasMetadataEnrichment(newSectionData)).toBeFalsy();
});
it('should return false when metadata has Metadata Enrichment but not belonging to sectionMetadata', () => {
const newSectionData = {
'dc.title': [new FormFieldMetadataValueObject('test')]
};
compAsAny.formData = newSectionData;
compAsAny.sectionMetadata = [];
expect(comp.hasMetadataEnrichment(newSectionData)).toBeFalsy();
});
it('should update form properly', () => {
spyOn(comp, 'initForm');
spyOn(comp, 'checksForErrors');

View File

@@ -283,7 +283,8 @@ export class SubmissionSectionformComponent extends SectionModelComponent {
sectionData,
this.submissionService.getSubmissionScope()
);
this.sectionMetadata = this.sectionService.computeSectionConfiguredMetadata(this.formConfig);
const sectionMetadata = this.sectionService.computeSectionConfiguredMetadata(this.formConfig);
this.sectionService.updateSectionData(this.submissionId, this.sectionData.id, sectionData, [], sectionMetadata);
} catch (e) {
const msg: string = this.translate.instant('error.submission.sections.init-form-error') + e.toString();
@@ -365,6 +366,7 @@ export class SubmissionSectionformComponent extends SectionModelComponent {
distinctUntilChanged())
.subscribe((sectionState: SubmissionSectionObject) => {
this.fieldsOnTheirWayToBeRemoved = new Map();
this.sectionMetadata = sectionState.metadata;
this.updateForm(sectionState.data as WorkspaceitemSectionFormObject, sectionState.errors);
})
)