]> 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 ceph 16.2.6
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / cluster / services / service-form / service-form.component.spec.ts
index e9e64b71cfe66ae91924506518db61e85fe895d4..11c0663efd246fa85685ac7482d8b06a62735dd8 100644 (file)
@@ -1,6 +1,7 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { ReactiveFormsModule } from '@angular/forms';
+import { By } from '@angular/platform-browser';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
@@ -99,14 +100,15 @@ describe('ServiceFormComponent', () => {
     });
 
     it('should test unmanaged', () => {
-      formHelper.setValue('service_type', 'rgw');
+      formHelper.setValue('service_type', 'mgr');
+      formHelper.setValue('service_id', 'svc');
       formHelper.setValue('placement', 'label');
       formHelper.setValue('label', 'bar');
-      formHelper.setValue('rgw_frontend_port', 4567);
       formHelper.setValue('unmanaged', true);
       component.onSubmit();
       expect(cephServiceService.create).toHaveBeenCalledWith({
-        service_type: 'rgw',
+        service_type: 'mgr',
+        service_id: 'svc',
         placement: {},
         unmanaged: true
       });
@@ -169,37 +171,56 @@ describe('ServiceFormComponent', () => {
     describe('should test service rgw', () => {
       beforeEach(() => {
         formHelper.setValue('service_type', 'rgw');
+        formHelper.setValue('service_id', 'svc');
       });
 
       it('should test rgw valid service id', () => {
-        formHelper.setValue('service_id', 'foo.bar');
+        formHelper.setValue('service_id', 'svc.realm.zone');
         formHelper.expectValid('service_id');
-        formHelper.setValue('service_id', 'foo.bar.bas');
+        formHelper.setValue('service_id', 'svc');
         formHelper.expectValid('service_id');
       });
 
       it('should test rgw invalid service id', () => {
-        formHelper.setValue('service_id', 'foo');
+        formHelper.setValue('service_id', '.');
+        formHelper.expectError('service_id', 'rgwPattern');
+        formHelper.setValue('service_id', 'svc.');
         formHelper.expectError('service_id', 'rgwPattern');
-        formHelper.setValue('service_id', 'foo.');
+        formHelper.setValue('service_id', 'svc.realm');
         formHelper.expectError('service_id', 'rgwPattern');
-        formHelper.setValue('service_id', 'foo.bar.');
+        formHelper.setValue('service_id', 'svc.realm.');
         formHelper.expectError('service_id', 'rgwPattern');
-        formHelper.setValue('service_id', 'foo.bar.bas.');
+        formHelper.setValue('service_id', '.svc.realm');
+        formHelper.expectError('service_id', 'rgwPattern');
+        formHelper.setValue('service_id', 'svc.realm.zone.');
         formHelper.expectError('service_id', 'rgwPattern');
       });
 
-      it('should submit rgw with port', () => {
+      it('should submit rgw with realm and zone', () => {
+        formHelper.setValue('service_id', 'svc.my-realm.my-zone');
+        component.onSubmit();
+        expect(cephServiceService.create).toHaveBeenCalledWith({
+          service_type: 'rgw',
+          service_id: 'svc',
+          rgw_realm: 'my-realm',
+          rgw_zone: 'my-zone',
+          placement: {},
+          unmanaged: false,
+          ssl: false
+        });
+      });
+
+      it('should submit rgw with port and ssl enabled', () => {
         formHelper.setValue('rgw_frontend_port', 1234);
         formHelper.setValue('ssl', true);
         component.onSubmit();
         expect(cephServiceService.create).toHaveBeenCalledWith({
           service_type: 'rgw',
+          service_id: 'svc',
           placement: {},
           unmanaged: false,
           rgw_frontend_port: 1234,
           rgw_frontend_ssl_certificate: '',
-          rgw_frontend_ssl_key: '',
           ssl: true
         });
       });
@@ -239,11 +260,36 @@ describe('ServiceFormComponent', () => {
         component.onSubmit();
         expect(cephServiceService.create).toHaveBeenCalledWith({
           service_type: 'rgw',
+          service_id: 'svc',
           placement: {},
           unmanaged: false,
           ssl: false
         });
       });
+
+      it('should not show private key field', () => {
+        formHelper.setValue('ssl', true);
+        fixture.detectChanges();
+        const ssl_key = fixture.debugElement.query(By.css('#ssl_key'));
+        expect(ssl_key).toBeNull();
+      });
+
+      it('should test .pem file', () => {
+        const pemCert = `
+-----BEGIN CERTIFICATE-----
+iJ5IbgzlKPssdYwuAEI3yPZxX/g5vKBrgcyD3LttLL/DlElq/1xCnwVrv7WROSNu
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+mn/S7BNBEC7AGe5ajmN+8hBTGdACUXe8rwMNrtTy/MwBZ0VpJsAAjJh+aptZh5yB
+-----END CERTIFICATE-----
+-----BEGIN RSA PRIVATE KEY-----
+x4Ea7kGVgx9kWh5XjWz9wjZvY49UKIT5ppIAWPMbLl3UpfckiuNhTA==
+-----END RSA PRIVATE KEY-----`;
+        formHelper.setValue('ssl', true);
+        formHelper.setValue('ssl_cert', pemCert);
+        fixture.detectChanges();
+        formHelper.expectValid('ssl_cert');
+      });
     });
 
     describe('should test service iscsi', () => {