diff --git a/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.html b/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.html index b14e0dec4e..834b0db520 100644 --- a/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.html +++ b/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.html @@ -53,7 +53,7 @@ + *ngIf="isEditable && hasErrors"> diff --git a/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.spec.ts b/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.spec.ts index 4f55503887..6222dc892d 100644 --- a/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.spec.ts +++ b/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.spec.ts @@ -454,6 +454,40 @@ describe('CardViewTextItemComponent', () => { expect(component.errors).toBe(expectedErrorMessages); }); + it('should render the error when the editedValue is invalid', async () => { + const expectedErrorMessages = [{ message: 'Something went wrong' } as CardViewItemValidator]; + component.property.isValid = () => false; + component.property.getValidationErrors = () => expectedErrorMessages; + component.editable = true; + component.ngOnChanges(); + fixture.detectChanges(); + await fixture.whenStable(); + + updateTextField(component.property.key, 'updated-value'); + const errorMessage = fixture.debugElement.nativeElement.querySelector('.adf-textitem-editable-error').textContent; + expect(errorMessage).toBe('Something went wrong'); + }); + + it('should reset erros when exiting editable mode', async () => { + let errorMessage: string; + const expectedErrorMessages = [{ message: 'Something went wrong' } as CardViewItemValidator]; + component.property.isValid = () => false; + component.property.getValidationErrors = () => expectedErrorMessages; + component.editable = true; + component.ngOnChanges(); + fixture.detectChanges(); + await fixture.whenStable(); + + updateTextField(component.property.key, 'updated-value'); + + component.editable = false; + component.ngOnChanges(); + fixture.detectChanges(); + errorMessage = fixture.debugElement.nativeElement.querySelector('.adf-textitem-editable-error'); + expect(errorMessage).toBe(null); + expect(component.errors).toEqual([]); + }); + it('should update the property value after a successful update attempt', async () => { component.property.isValid = () => true; component.update(); diff --git a/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.ts b/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.ts index f77c018468..94981341f3 100644 --- a/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.ts +++ b/lib/core/card-view/components/card-view-textitem/card-view-textitem.component.ts @@ -90,6 +90,8 @@ export class CardViewTextItemComponent extends BaseCardView