Merge pull request #2810 from DSpace/backport-2647-to-dspace-7_x

[Port dspace-7_x] File edit component updated to work for forms without access conditions.
This commit is contained in:
Tim Donohue
2024-02-15 14:34:38 -06:00
committed by GitHub
2 changed files with 65 additions and 38 deletions

View File

@@ -80,6 +80,9 @@ describe('SubmissionSectionUploadFileEditComponent test suite', () => {
const fileData: any = mockUploadFiles[0]; const fileData: any = mockUploadFiles[0];
const pathCombiner = new JsonPatchOperationPathCombiner('sections', sectionId, 'files', fileIndex); const pathCombiner = new JsonPatchOperationPathCombiner('sections', sectionId, 'files', fileIndex);
let noAccessConditionsMock = Object.assign({}, mockFileFormData);
delete noAccessConditionsMock.accessConditions;
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [ imports: [
@@ -299,6 +302,28 @@ describe('SubmissionSectionUploadFileEditComponent test suite', () => {
})); }));
it('should update Bitstream data properly when access options are omitted', fakeAsync(() => {
compAsAny.formRef = {formGroup: null};
compAsAny.fileData = fileData;
compAsAny.pathCombiner = pathCombiner;
formService.validateAllFormFields.and.callFake(() => null);
formService.isValid.and.returnValue(of(true));
formService.getFormData.and.returnValue(of(noAccessConditionsMock));
const response = [
Object.assign(mockSubmissionObject, {
sections: {
upload: {
files: mockUploadFiles
}
}
})
];
operationsService.jsonPatchByResourceID.and.returnValue(of(response));
comp.saveBitstreamData();
tick();
expect(uploadService.updateFileData).toHaveBeenCalled();
}));
it('should not save Bitstream File data properly when form is not valid', fakeAsync(() => { it('should not save Bitstream File data properly when form is not valid', fakeAsync(() => {
compAsAny.formRef = {formGroup: null}; compAsAny.formRef = {formGroup: null};
compAsAny.pathCombiner = pathCombiner; compAsAny.pathCombiner = pathCombiner;

View File

@@ -416,7 +416,9 @@ export class SubmissionSectionUploadFileEditComponent
this.operationsBuilder.remove(this.pathCombiner.getPath(path)); this.operationsBuilder.remove(this.pathCombiner.getPath(path));
}); });
const accessConditionsToSave = []; const accessConditionsToSave = [];
if (formData.hasOwnProperty('accessConditions')) {
formData.accessConditions formData.accessConditions
.filter((accessConditions) => isNotNull(accessConditions))
.map((accessConditions) => accessConditions.accessConditionGroup) .map((accessConditions) => accessConditions.accessConditionGroup)
.filter((accessCondition) => isNotEmpty(accessCondition)) .filter((accessCondition) => isNotEmpty(accessCondition))
.forEach((accessCondition) => { .forEach((accessCondition) => {
@@ -465,7 +467,7 @@ export class SubmissionSectionUploadFileEditComponent
accessConditionsToSave.push(currentAccessCondition); accessConditionsToSave.push(currentAccessCondition);
} }
}); });
}
if (isNotEmpty(accessConditionsToSave)) { if (isNotEmpty(accessConditionsToSave)) {
this.operationsBuilder.add(this.pathCombiner.getPath('accessConditions'), accessConditionsToSave, true); this.operationsBuilder.add(this.pathCombiner.getPath('accessConditions'), accessConditionsToSave, true);
} }