From 6db9394d1afb52cb51dd31f9dd5633f7d0cf23d4 Mon Sep 17 00:00:00 2001 From: Syed Ali Ul Hasan Date: Tue, 14 Jul 2026 15:41:43 +0530 Subject: [PATCH] mgr/dashboard: fix nfs toggle test Fixes: https://tracker.ceph.com/issues/75986 Signed-off-by: Syed Ali Ul Hasan --- .../rbd-snapshot-form-modal.component.html | 1 - .../rbd-snapshot-form-modal.component.spec.ts | 18 ++++++++++-------- .../rbd-snapshot-form-modal.component.ts | 9 +++++++++ 3 files changed, 19 insertions(+), 9 deletions(-) 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 dfc229f32a7b..d03d9c4c616b 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 056ad5eda53c..d22d33cab1a7 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 60bad211e8de..af9ee6d9b2fc 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) { -- 2.47.3