]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.spec.ts
import quincy beta 17.1.0
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / cluster / services / service-form / service-form.component.spec.ts
index a1078b81ba2abd3da8bfb80b7ea5d31104d503ca..b85ff3f7a23e561314873c3ab579f933084f17af 100644 (file)
@@ -227,13 +227,13 @@ describe('ServiceFormComponent', () => {
 
       it('should submit invalid rgw port (1)', () => {
         formHelper.setValue('rgw_frontend_port', 0);
-        component.onSubmit();
+        fixture.detectChanges();
         formHelper.expectError('rgw_frontend_port', 'min');
       });
 
       it('should submit invalid rgw port (2)', () => {
         formHelper.setValue('rgw_frontend_port', 65536);
-        component.onSubmit();
+        fixture.detectChanges();
         formHelper.expectError('rgw_frontend_port', 'max');
       });
 
@@ -349,13 +349,13 @@ x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA==
 
       it('should submit invalid iscsi port (1)', () => {
         formHelper.setValue('api_port', 0);
-        component.onSubmit();
+        fixture.detectChanges();
         formHelper.expectError('api_port', 'min');
       });
 
       it('should submit invalid iscsi port (2)', () => {
         formHelper.setValue('api_port', 65536);
-        component.onSubmit();
+        fixture.detectChanges();
         formHelper.expectError('api_port', 'max');
       });
 
@@ -364,6 +364,10 @@ x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA==
         component.onSubmit();
         formHelper.expectError('api_port', 'pattern');
       });
+
+      it('should throw error when there is no pool', () => {
+        formHelper.expectErrorChange('pool', '', 'required');
+      });
     });
 
     describe('should test service ingress', () => {
@@ -398,14 +402,14 @@ x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA==
         // min value
         formHelper.setValue('frontend_port', 1);
         formHelper.setValue('monitor_port', 1);
-        component.onSubmit();
+        fixture.detectChanges();
         formHelper.expectValid('frontend_port');
         formHelper.expectValid('monitor_port');
 
         // max value
         formHelper.setValue('frontend_port', 65535);
         formHelper.setValue('monitor_port', 65535);
-        component.onSubmit();
+        fixture.detectChanges();
         formHelper.expectValid('frontend_port');
         formHelper.expectValid('monitor_port');
       });
@@ -414,14 +418,14 @@ x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA==
         // min
         formHelper.setValue('frontend_port', 0);
         formHelper.setValue('monitor_port', 0);
-        component.onSubmit();
+        fixture.detectChanges();
         formHelper.expectError('frontend_port', 'min');
         formHelper.expectError('monitor_port', 'min');
 
         // max
         formHelper.setValue('frontend_port', 65536);
         formHelper.setValue('monitor_port', 65536);
-        component.onSubmit();
+        fixture.detectChanges();
         formHelper.expectError('frontend_port', 'max');
         formHelper.expectError('monitor_port', 'max');
 
@@ -434,6 +438,74 @@ x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA==
       });
     });
 
+    describe('should test service snmp-gateway', () => {
+      beforeEach(() => {
+        formHelper.setValue('service_type', 'snmp-gateway');
+        formHelper.setValue('snmp_destination', '192.168.20.1:8443');
+      });
+
+      it('should test snmp-gateway service with V2c', () => {
+        formHelper.setValue('snmp_version', 'V2c');
+        formHelper.setValue('snmp_community', 'public');
+        component.onSubmit();
+        expect(cephServiceService.create).toHaveBeenCalledWith({
+          service_type: 'snmp-gateway',
+          placement: {},
+          unmanaged: false,
+          snmp_version: 'V2c',
+          snmp_destination: '192.168.20.1:8443',
+          credentials: {
+            snmp_community: 'public'
+          }
+        });
+      });
+
+      it('should test snmp-gateway service with V3', () => {
+        formHelper.setValue('snmp_version', 'V3');
+        formHelper.setValue('engine_id', '800C53F00000');
+        formHelper.setValue('auth_protocol', 'SHA');
+        formHelper.setValue('privacy_protocol', 'DES');
+        formHelper.setValue('snmp_v3_auth_username', 'testuser');
+        formHelper.setValue('snmp_v3_auth_password', 'testpass');
+        formHelper.setValue('snmp_v3_priv_password', 'testencrypt');
+        component.onSubmit();
+        expect(cephServiceService.create).toHaveBeenCalledWith({
+          service_type: 'snmp-gateway',
+          placement: {},
+          unmanaged: false,
+          snmp_version: 'V3',
+          snmp_destination: '192.168.20.1:8443',
+          engine_id: '800C53F00000',
+          auth_protocol: 'SHA',
+          privacy_protocol: 'DES',
+          credentials: {
+            snmp_v3_auth_username: 'testuser',
+            snmp_v3_auth_password: 'testpass',
+            snmp_v3_priv_password: 'testencrypt'
+          }
+        });
+      });
+
+      it('should submit invalid snmp destination', () => {
+        formHelper.setValue('snmp_version', 'V2c');
+        formHelper.setValue('snmp_destination', '192.168.20.1');
+        formHelper.setValue('snmp_community', 'public');
+        formHelper.expectError('snmp_destination', 'snmpDestinationPattern');
+      });
+
+      it('should submit invalid snmp engine id', () => {
+        formHelper.setValue('snmp_version', 'V3');
+        formHelper.setValue('snmp_destination', '192.168.20.1');
+        formHelper.setValue('engine_id', 'AABBCCDDE');
+        formHelper.setValue('auth_protocol', 'SHA');
+        formHelper.setValue('privacy_protocol', 'DES');
+        formHelper.setValue('snmp_v3_auth_username', 'testuser');
+        formHelper.setValue('snmp_v3_auth_password', 'testpass');
+
+        formHelper.expectError('engine_id', 'snmpEngineIdPattern');
+      });
+    });
+
     describe('check edit fields', () => {
       beforeEach(() => {
         component.editing = true;