feat(modal): refactor confirm delete modal handling and improve test coverage
This commit is contained in:
@@ -186,9 +186,61 @@ describe('ReutilizablesTestPageComponent', () => {
|
||||
).toContain('Todavia no se abrio ningun modal.');
|
||||
|
||||
confirmButton.click();
|
||||
fixture.detectChanges();
|
||||
deleteButton.click();
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(modalServiceStub.openConfirm).toHaveBeenCalled();
|
||||
expect(modalServiceStub.openConfirmDelete).toHaveBeenCalled();
|
||||
expect(modalServiceStub.openConfirm).toHaveBeenCalledWith({
|
||||
title: 'Confirmar accion',
|
||||
content: 'Caso base para verificar apertura, cierre y devolucion de resultado.',
|
||||
confirmLabel: 'Confirmar'
|
||||
});
|
||||
expect(modalServiceStub.openConfirmDelete).toHaveBeenCalledWith({
|
||||
title: 'Eliminar producto',
|
||||
content:
|
||||
'Esta accion eliminara el producto del catalogo. Podras volver a crearlo manualmente.',
|
||||
confirmLabel: 'Eliminar'
|
||||
});
|
||||
expect(
|
||||
element.querySelector('[data-testid="modal-last-result"]')?.textContent
|
||||
).toContain('Resultado: false');
|
||||
});
|
||||
|
||||
it('updates the visible result when the confirm modal resolves to true', async () => {
|
||||
const modalServiceStub = createModalServiceStub();
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [ReutilizablesTestPageComponent],
|
||||
providers: [
|
||||
{
|
||||
provide: TenantService,
|
||||
useValue: createTenantServiceStub(tenant)
|
||||
},
|
||||
{
|
||||
provide: ToastService,
|
||||
useValue: createToastServiceStub()
|
||||
},
|
||||
{
|
||||
provide: ModalService,
|
||||
useValue: modalServiceStub
|
||||
}
|
||||
]
|
||||
}).compileComponents();
|
||||
|
||||
const fixture = TestBed.createComponent(ReutilizablesTestPageComponent);
|
||||
fixture.detectChanges();
|
||||
|
||||
const element = fixture.nativeElement as HTMLElement;
|
||||
const confirmButton = Array.from(
|
||||
element.querySelectorAll('.button-group app-button button')
|
||||
).find((button) =>
|
||||
button.textContent?.includes('Abrir confirm modal')
|
||||
) as HTMLButtonElement;
|
||||
|
||||
confirmButton.click();
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(
|
||||
element.querySelector('[data-testid="modal-last-result"]')?.textContent
|
||||
).toContain('Resultado: true');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -198,14 +198,11 @@ export class ReutilizablesTestPageComponent {
|
||||
}
|
||||
|
||||
protected openConfirmDeleteModal(): void {
|
||||
this.modalService.openConfirmDelete({
|
||||
this.openConfirmDelete({
|
||||
title: 'Eliminar producto',
|
||||
content:
|
||||
'Esta accion eliminara el producto del catalogo. Podras volver a crearlo manualmente.',
|
||||
confirmLabel: 'Eliminar',
|
||||
cancelLabel: 'Conservar'
|
||||
}).subscribe((confirmed) => {
|
||||
this.lastModalResult = `Resultado: ${confirmed}`;
|
||||
confirmLabel: 'Eliminar'
|
||||
});
|
||||
}
|
||||
|
||||
@@ -234,4 +231,12 @@ export class ReutilizablesTestPageComponent {
|
||||
this.lastModalResult = `Resultado: ${confirmed}`;
|
||||
});
|
||||
}
|
||||
|
||||
private openConfirmDelete(
|
||||
config: Parameters<ModalService['openConfirmDelete']>[0]
|
||||
): void {
|
||||
this.modalService.openConfirmDelete(config).subscribe((confirmed) => {
|
||||
this.lastModalResult = `Resultado: ${confirmed}`;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user