diff --git a/src/app/item-page/edit-item-page/item-metadata/edit-in-place-field/edit-in-place-field.component.html b/src/app/item-page/edit-item-page/item-metadata/edit-in-place-field/edit-in-place-field.component.html index 5277fa1a3a..fe46906f47 100644 --- a/src/app/item-page/edit-item-page/item-metadata/edit-in-place-field/edit-in-place-field.component.html +++ b/src/app/item-page/edit-item-page/item-metadata/edit-in-place-field/edit-in-place-field.component.html @@ -1,10 +1,10 @@
- {{metadata?.key?.split('.').join('.​')}} + {{metadata?.key?.split('.').join('.​')}}
- { }); }); + + describe('canEditMetadataField', () => { + describe('when the fieldUpdate\'s changeType is currently ADD', () => { + beforeEach(() => { + objectUpdatesService.isEditable.and.returnValue(observableOf(true)); + comp.fieldUpdate.changeType = FieldChangeType.ADD; + fixture.detectChanges(); + }); + it('can edit metadata field', () => { + const disabledMetadataField = fixture.debugElement.query(By.css('ds-validation-suggestions')) + .componentInstance.disable; + expect(disabledMetadataField).toBe(false); + }); + }); + describe('when the fieldUpdate\'s changeType is currently REMOVE', () => { + beforeEach(() => { + objectUpdatesService.isEditable.and.returnValue(observableOf(true)); + comp.fieldUpdate.changeType = FieldChangeType.REMOVE; + fixture.detectChanges(); + }); + it('can edit metadata field', () => { + const disabledMetadataField = fixture.debugElement.query(By.css('ds-validation-suggestions')) + .componentInstance.disable; + expect(disabledMetadataField).toBe(true); + }); + }); + describe('when the fieldUpdate\'s changeType is currently UPDATE', () => { + beforeEach(() => { + objectUpdatesService.isEditable.and.returnValue(observableOf(true)); + comp.fieldUpdate.changeType = FieldChangeType.UPDATE; + fixture.detectChanges(); + }); + it('can edit metadata field', () => { + const disabledMetadataField = fixture.debugElement.query(By.css('ds-validation-suggestions')) + .componentInstance.disable; + expect(disabledMetadataField).toBe(true); + }); + }); + }); }); diff --git a/src/app/shared/input-suggestions/validation-suggestions/validation-suggestions.component.html b/src/app/shared/input-suggestions/validation-suggestions/validation-suggestions.component.html index f756169f94..1b958d8d9f 100644 --- a/src/app/shared/input-suggestions/validation-suggestions/validation-suggestions.component.html +++ b/src/app/shared/input-suggestions/validation-suggestions/validation-suggestions.component.html @@ -3,7 +3,7 @@ (keydown.arrowdown)="shiftFocusDown($event)" (keydown.arrowup)="shiftFocusUp($event)" (keydown.esc)="close()" (dsClickOutside)="checkIfValidInput(form);close();"> - { expect(comp.onClickSuggestion).toHaveBeenCalledWith(suggestions[clickedIndex].value); }); }); + describe('can edit input', () => { + describe('test input field readonly property when input disable is true', () => { + beforeEach(() => { + comp.disable = true; + fixture.detectChanges(); + }); + it('it should be true', () => { + fixture.detectChanges(); + const input = fixture.debugElement.query(By.css('input')); + const element = input.nativeElement; + expect(element.readOnly).toBe(true); + }); + }); + describe('test input field readonly property when input disable is false', () => { + beforeEach(() => { + comp.disable = false; + fixture.detectChanges(); + }); + it('it should be true', () => { + fixture.detectChanges(); + const input = fixture.debugElement.query(By.css('input')); + const element = input.nativeElement; + expect(element.readOnly).toBe(false); + }); + }); + }); }); diff --git a/src/app/shared/input-suggestions/validation-suggestions/validation-suggestions.component.ts b/src/app/shared/input-suggestions/validation-suggestions/validation-suggestions.component.ts index e7301cd35a..c6f92a41b3 100644 --- a/src/app/shared/input-suggestions/validation-suggestions/validation-suggestions.component.ts +++ b/src/app/shared/input-suggestions/validation-suggestions/validation-suggestions.component.ts @@ -42,7 +42,10 @@ export class ValidationSuggestionsComponent extends InputSuggestionsComponent im * The suggestions that should be shown */ @Input() suggestions: InputSuggestion[] = []; - + /** + * The possibility to edit metadata + */ + @Input() disable; constructor(private metadataFieldValidator: MetadataFieldValidator, private objectUpdatesService: ObjectUpdatesService) { super();