From: Syed Ali Ul Hasan Date: Tue, 14 Jul 2026 10:11:43 +0000 (+0530) Subject: mgr/dashboard: fix nfs toggle test X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6db9394d1afb52cb51dd31f9dd5633f7d0cf23d4;p=ceph.git mgr/dashboard: fix nfs toggle test Fixes: https://tracker.ceph.com/issues/75986 Signed-off-by: Syed Ali Ul Hasan --- diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.html index dfc229f32a7..d03d9c4c616 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.html +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.html @@ -90,7 +90,6 @@ formControlName="mirrorImageSnapshot" name="mirrorImageSnapshot" (checkedChange)="onMirrorCheckBoxChange()" - [attr.disabled]="!peerConfigured.length > 0 ? true : null" i18n >Mirror Image Snapshot diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.spec.ts index 056ad5eda53..d22d33cab1a 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.spec.ts @@ -77,12 +77,14 @@ describe('RbdSnapshotFormModalComponent', () => { // TODO: Fix this test. It is failing after updating the jest. // It looks like it is not recognizing if radio button is disabled or not - // it('should disable the mirror image snapshot creation when peer is not configured', () => { - // spyOn(rbdMirrorService, 'getPeerForPool').and.returnValue(of([])); - // component.mirroring = 'snapshot'; - // component.ngOnInit(); - // fixture.detectChanges(); - // const radio = fixture.debugElement.nativeElement.querySelector('#mirrorImageSnapshot'); - // expect(radio.disabled).toBe(true); - // }); + it('should disable the mirror image snapshot creation when peer is not configured', () => { + spyOn(rbdMirrorService, 'getPeerForPool').and.returnValue(of([])); + component.mirroring = 'snapshot'; + component.ngOnInit(); + fixture.detectChanges(); + const checkboxElement = + fixture.debugElement.nativeElement.querySelector('#mirrorImageSnapshot'); + const input = checkboxElement.querySelector('input'); + expect(input.disabled).toBe(true); + }); }); diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.ts index 60bad211e8d..af9ee6d9b2f 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form-modal.component.ts @@ -62,6 +62,15 @@ export class RbdSnapshotFormModalComponent extends BaseModal implements OnInit { ngOnInit(): void { this.peerConfigured$ = this.rbdMirrorService.getPeerForPool(this.poolName); + + this.peerConfigured$.subscribe((peers) => { + const control = this.snapshotForm.get('mirrorImageSnapshot'); + if (peers && peers.length > 0) { + control.enable(); + } else { + control.disable(); + } + }); } setSnapName(snapName: string) {