mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
[CST-4947] Test WIP
This commit is contained in:
@@ -3,7 +3,7 @@ import { ComponentFixture, fakeAsync, inject, TestBed, tick, waitForAsync } from
|
|||||||
import { BrowserModule, By } from '@angular/platform-browser';
|
import { BrowserModule, By } from '@angular/platform-browser';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
|
|
||||||
import { of as observableOf } from 'rxjs';
|
import { of, of as observableOf } from 'rxjs';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
|
|
||||||
import { FormService } from '../../../../shared/form/form.service';
|
import { FormService } from '../../../../shared/form/form.service';
|
||||||
@@ -36,8 +36,20 @@ import { FormFieldMetadataValueObject } from '../../../../shared/form/builder/mo
|
|||||||
import { SubmissionSectionUploadFileEditComponent } from './edit/section-upload-file-edit.component';
|
import { SubmissionSectionUploadFileEditComponent } from './edit/section-upload-file-edit.component';
|
||||||
import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service';
|
import { FormBuilderService } from '../../../../shared/form/builder/form-builder.service';
|
||||||
import { dateToISOFormat } from '../../../../shared/date.util';
|
import { dateToISOFormat } from '../../../../shared/date.util';
|
||||||
|
import { SubmissionFormModel } from '../../../../core/config/models/config-submission-form.model';
|
||||||
|
|
||||||
describe('SubmissionSectionUploadFileComponent test suite', () => {
|
const configMetadataFormMock = {
|
||||||
|
rows: [{
|
||||||
|
fields: [{
|
||||||
|
selectableMetadata: [
|
||||||
|
{metadata: 'dc.title', label: null, closed: false},
|
||||||
|
{metadata: 'dc.description', label: null, closed: false}
|
||||||
|
]
|
||||||
|
}]
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
|
||||||
|
fdescribe('SubmissionSectionUploadFileComponent test suite', () => {
|
||||||
|
|
||||||
let comp: SubmissionSectionUploadFileComponent;
|
let comp: SubmissionSectionUploadFileComponent;
|
||||||
let compAsAny: any;
|
let compAsAny: any;
|
||||||
@@ -117,6 +129,9 @@ describe('SubmissionSectionUploadFileComponent test suite', () => {
|
|||||||
|
|
||||||
testFixture = createTestComponent(html, TestComponent) as ComponentFixture<TestComponent>;
|
testFixture = createTestComponent(html, TestComponent) as ComponentFixture<TestComponent>;
|
||||||
testComp = testFixture.componentInstance;
|
testComp = testFixture.componentInstance;
|
||||||
|
|
||||||
|
// testComp.configMetadataForm = configMetadataFormMock;
|
||||||
|
// testFixture.detectChanges();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
@@ -124,9 +139,8 @@ describe('SubmissionSectionUploadFileComponent test suite', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should create SubmissionSectionUploadFileComponent', inject([SubmissionSectionUploadFileComponent], (app: SubmissionSectionUploadFileComponent) => {
|
it('should create SubmissionSectionUploadFileComponent', inject([SubmissionSectionUploadFileComponent], (app: SubmissionSectionUploadFileComponent) => {
|
||||||
|
app.configMetadataForm = Object.assign(new SubmissionFormModel(), configMetadataFormMock);
|
||||||
expect(app).toBeDefined();
|
expect(app).toBeDefined();
|
||||||
|
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -135,6 +149,7 @@ describe('SubmissionSectionUploadFileComponent test suite', () => {
|
|||||||
fixture = TestBed.createComponent(SubmissionSectionUploadFileComponent);
|
fixture = TestBed.createComponent(SubmissionSectionUploadFileComponent);
|
||||||
comp = fixture.componentInstance;
|
comp = fixture.componentInstance;
|
||||||
compAsAny = comp;
|
compAsAny = comp;
|
||||||
|
compAsAny.configMetadataForm = configMetadataFormMock;
|
||||||
submissionServiceStub = TestBed.inject(SubmissionService as any);
|
submissionServiceStub = TestBed.inject(SubmissionService as any);
|
||||||
uploadService = TestBed.inject(SectionUploadService);
|
uploadService = TestBed.inject(SectionUploadService);
|
||||||
formService = TestBed.inject(FormService);
|
formService = TestBed.inject(FormService);
|
||||||
@@ -314,7 +329,7 @@ class TestComponent {
|
|||||||
availableAccessConditionOptions;
|
availableAccessConditionOptions;
|
||||||
collectionId = mockSubmissionCollectionId;
|
collectionId = mockSubmissionCollectionId;
|
||||||
collectionPolicyType;
|
collectionPolicyType;
|
||||||
configMetadataForm$;
|
configMetadataForm$ = of(configMetadataFormMock);
|
||||||
fileIndexes = [];
|
fileIndexes = [];
|
||||||
fileList = [];
|
fileList = [];
|
||||||
fileNames = [];
|
fileNames = [];
|
||||||
|
@@ -6,7 +6,7 @@ import { DynamicFormControlModel, } from '@ng-dynamic-forms/core';
|
|||||||
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
|
||||||
|
|
||||||
import { SectionUploadService } from '../section-upload.service';
|
import { SectionUploadService } from '../section-upload.service';
|
||||||
import { isNotEmpty, isNotNull, isNotUndefined } from '../../../../shared/empty.util';
|
import { hasNoValue, isNotEmpty, isNotNull, isNotUndefined } from '../../../../shared/empty.util';
|
||||||
import { FormService } from '../../../../shared/form/form.service';
|
import { FormService } from '../../../../shared/form/form.service';
|
||||||
import { JsonPatchOperationsBuilder } from '../../../../core/json-patch/builder/json-patch-operations-builder';
|
import { JsonPatchOperationsBuilder } from '../../../../core/json-patch/builder/json-patch-operations-builder';
|
||||||
import { JsonPatchOperationPathCombiner } from '../../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
import { JsonPatchOperationPathCombiner } from '../../../../core/json-patch/builder/json-patch-operation-path-combiner';
|
||||||
@@ -129,6 +129,12 @@ export class SubmissionSectionUploadFileComponent implements OnChanges, OnInit {
|
|||||||
*/
|
*/
|
||||||
protected subscriptions: Subscription[] = [];
|
protected subscriptions: Subscription[] = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Array containing all the form metadata defined in configMetadataForm
|
||||||
|
* @type {Array}
|
||||||
|
*/
|
||||||
|
protected formMetadata: string[] = [];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The [[SubmissionSectionUploadFileEditComponent]] reference
|
* The [[SubmissionSectionUploadFileEditComponent]] reference
|
||||||
* @type {SubmissionSectionUploadFileEditComponent}
|
* @type {SubmissionSectionUploadFileEditComponent}
|
||||||
@@ -158,6 +164,17 @@ export class SubmissionSectionUploadFileComponent implements OnChanges, OnInit {
|
|||||||
this.readMode = true;
|
this.readMode = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected loadFormMetadata() {
|
||||||
|
this.configMetadataForm.rows.forEach((row) => {
|
||||||
|
row.fields.forEach((field) => {
|
||||||
|
field.selectableMetadata.forEach((metadatum) => {
|
||||||
|
this.formMetadata.push(metadatum.metadata);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve bitstream's metadata
|
* Retrieve bitstream's metadata
|
||||||
*/
|
*/
|
||||||
@@ -182,6 +199,7 @@ export class SubmissionSectionUploadFileComponent implements OnChanges, OnInit {
|
|||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.formId = this.formService.getUniqueId(this.fileId);
|
this.formId = this.formService.getUniqueId(this.fileId);
|
||||||
this.pathCombiner = new JsonPatchOperationPathCombiner('sections', this.sectionId, 'files', this.fileIndex);
|
this.pathCombiner = new JsonPatchOperationPathCombiner('sections', this.sectionId, 'files', this.fileIndex);
|
||||||
|
this.loadFormMetadata();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -250,6 +268,15 @@ export class SubmissionSectionUploadFileComponent implements OnChanges, OnInit {
|
|||||||
const path = `metadata/${metadataKey}`;
|
const path = `metadata/${metadataKey}`;
|
||||||
this.operationsBuilder.add(this.pathCombiner.getPath(path), formData.metadata[key], true);
|
this.operationsBuilder.add(this.pathCombiner.getPath(path), formData.metadata[key], true);
|
||||||
});
|
});
|
||||||
|
Object.keys((this.fileData.metadata))
|
||||||
|
.filter((key) => isNotEmpty(this.fileData.metadata[key]))
|
||||||
|
.filter((key) => hasNoValue(formData.metadata[key]))
|
||||||
|
.filter((key) => this.formMetadata.includes(key))
|
||||||
|
.forEach((key) => {
|
||||||
|
const metadataKey = key.replace(/_/g, '.');
|
||||||
|
const path = `metadata/${metadataKey}`;
|
||||||
|
this.operationsBuilder.remove(this.pathCombiner.getPath(path));
|
||||||
|
});
|
||||||
const accessConditionsToSave = [];
|
const accessConditionsToSave = [];
|
||||||
formData.accessConditions
|
formData.accessConditions
|
||||||
.map((accessConditions) => accessConditions.accessConditionGroup)
|
.map((accessConditions) => accessConditions.accessConditionGroup)
|
||||||
|
Reference in New Issue
Block a user